Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.
Pode ingerir, analisar e consultar ficheiros Excel para cargas de trabalho em lote e streaming usando o suporte integrado ao formato de ficheiros Excel. Infere automaticamente o esquema e os tipos de dados, eliminando a necessidade de bibliotecas externas ou conversões manuais de ficheiros. Esta funcionalidade permite uma ingestão fluida tanto a partir de uploads locais como de armazenamento na cloud.
Principais características
- Ler diretamente ficheiros
.xlse.xlsxusando APIs SQL e Spark do Databricks. - Carregue diretamente os ficheiros
.xlse.xlsxusando a interface de utilizador Adicionar Dados. Consulte Carregar ficheiros para o Azure Databricks. - Leia qualquer folha de um ficheiro multi-folha.
- Especifique limites ou intervalos exatos das células.
- Inferir automaticamente o esquema, cabeçalhos e tipos de dados.
- Ingerir fórmulas avaliadas.
- Use o Auto Loader para streaming estruturado de ficheiros Excel.
Pré-requisitos
Databricks Runtime 17.1 ou superior.
Crie ou modifique uma tabela na interface
Pode usar a interface Criar ou modificar tabelas para criar tabelas a partir de ficheiros Excel. Comece por carregar um ficheiro Excel ou selecionar um ficheiro Excel a partir de um volume ou de uma localização externa. Escolha a folha, ajuste o número de linhas de cabeçalho e, opcionalmente, especifique um intervalo de células. A interface suporta a criação de uma única tabela a partir do ficheiro e da folha selecionados.
Consultar ficheiros Excel
Pode consultar os seus ficheiros Excel usando APIs batch (spark.read) e streamingspark.readstream () do Spark. Podes escolher inferir automaticamente o esquema ou especificar o teu próprio esquema para analisar os ficheiros Excel. Por defeito, o analisador lê todas as células a partir da célula superior esquerda até à célula inferior direita não vazia na primeira folha. Para ler uma folha ou intervalo de células diferente, use a opção dataAddress.
Pode consultar a lista de folhas num ficheiro Excel definindo a operation opção para listSheets.
Opções de análise em Excel
As seguintes opções estão disponíveis para analisar ficheiros Excel:
| Opção de fonte de dados | Description |
|---|---|
dataAddress |
O endereço do intervalo de células para ler na sintaxe do Excel. Se não for especificado, o analisador lê todas as células válidas da primeira folha.
|
headerRows |
O número de linhas iniciais no ficheiro Excel a serem tratadas como linhas de cabeçalho e lidas como nomes de colunas. Quando dataAddress é especificado, headerRows aplica-se às linhas de cabeçalho dentro desse intervalo de células. Os valores suportados são 0 e 1. O padrão é 0, caso em que os nomes das colunas são gerados automaticamente ao adicionar o número da coluna a _c (por exemplo: _c1, _c2, _c3, ...).Examples:
|
operation |
Indica a operação a realizar no livro de exercícios do Excel. O padrão é readSheet, que lê dados de uma folha. A outra operação suportada é listSheets, que devolve a lista de folhas no livro de exercícios. Para a listSheets operação, o esquema devolvido é a struct com os seguintes campos:
|
timestampNTZFormat |
String de formato personalizado para um valor de carimbo temporal (armazenado como string no Excel) sem uma zona horária que siga o formato especificado do padrão de data-hora. Isto aplica-se a valores de cadeia lidos como TimestampNTZType. Padrão: yyyy-MM-dd'T'HH:mm:ss[.SSS]. |
dateFormat |
Cadeia de formato de data personalizada que segue o padrão de formato de data-hora. Isto aplica-se a valores de cadeia lidos como Date. Padrão: yyyy-MM-dd. |
Examples
Encontre exemplos de código para ler ficheiros Excel usando o conector incorporado Lakeflow Connect.
Leia ficheiros Excel usando uma leitura em lote do Spark
Pode ler um ficheiro Excel a partir de armazenamento na cloud (por exemplo, S3, ADLS) usando spark.read.excel. Por exemplo:
# Read the first sheet from a single Excel file or from multiple Excel files in a directory
df = (spark.read.excel(<path to excel directory or file>))
# Infer schema field name from the header row
df = (spark.read
.option("headerRows", 1)
.excel(<path to excel directory or file>))
# Read a specific sheet and range
df = (spark.read
.option("headerRows", 1)
.option("dataAddress", "Sheet1!A1:E10")
.excel(<path to excel directory or file>))
Leia ficheiros Excel usando SQL
Podes usar a read_files função de valores de tabela para ingerir ficheiros Excel diretamente usando SQL. Por exemplo:
-- Read an entire Excel file
CREATE TABLE my_table AS
SELECT * FROM read_files(
"<path to excel directory or file>",
schemaEvolutionMode => "none"
);
-- Read a specific sheet and range
CREATE TABLE my_sheet_table AS
SELECT * FROM read_files(
"<path to excel directory or file>",
format => "excel",
headerRows => 1,
dataAddress => "'Sheet1'!A2:D10",
schemaEvolutionMode => "none"
);
Transmitir ficheiros Excel usando o Auto Loader
Pode transmitir ficheiros Excel usando o Auto Loader definindo cloudFiles.format para excel. Por exemplo:
df = (
spark
.readStream
.format("cloudFiles")
.option("cloudFiles.format", "excel")
.option("cloudFiles.inferColumnTypes", True)
.option("headerRows", 1)
.option("cloudFiles.schemaLocation", "<path to schema location dir>")
.option("cloudFiles.schemaEvolutionMode", "none")
.load(<path to excel directory or file>)
)
df.writeStream
.format("delta")
.option("mergeSchema", "true")
.option("checkpointLocation", "<path to checkpoint location dir>")
.table(<table name>)
Ingerir ficheiros Excel usando COPY INTO
CREATE TABLE IF NOT EXISTS excel_demo_table;
COPY INTO excel_demo_table
FROM "<path to excel directory or file>"
FILEFORMAT = EXCEL
FORMAT_OPTIONS ('mergeSchema' = 'true')
COPY_OPTIONS ('mergeSchema' = 'true');
Analisar folhas Excel complexas não estruturadas
Para folhas Excel complexas e não estruturadas (por exemplo, múltiplas tabelas por folha, ilhas de dados), o Databricks recomenda extrair os intervalos de células de que precisa para criar os seus DataFrames Spark usando as dataAddress opções. Por exemplo:
df = (spark.read.format("excel")
.option("headerRows", 1)
.option("dataAddress", "Sheet1!A1:E10")
.load(<path to excel directory or file>))
Folhas de lista
Podes listar as folhas num ficheiro Excel usando a listSheets operação. O esquema devolvido é a struct com os seguintes campos:
-
sheetIndex:Longo -
sheetName: cadeia
Por exemplo:
Python
# List the name of the Sheets in an Excel file
df = (spark.read.format("excel")
.option("operation", "listSheets")
.load(<path to excel directory or file>))
SQL
SELECT * FROM read_files("<path to excel directory or file>",
schemaEvolutionMode => "none",
operation => "listSheets"
)
Limitações
- Ficheiros protegidos por palavra-passe não são suportados.
- Apenas uma linha de cabeçalhos é suportada.
- Os valores das células fundidas apenas preenchem a célula no canto superior esquerdo. As células filhas restantes são definidas para
NULL. - A transmissão de ficheiros Excel usando o Auto Loader é suportada, mas a evolução do esquema não. Deve definir
schemaEvolutionMode="None"explicitamente. - "Folha de Cálculo XML Aberta Estrita (Strict OOXML)" não é suportada.
- A execução de macros em
.xlsmficheiros não é suportada. - A
ignoreCorruptFilesopção não é suportada.
FAQ
Encontre respostas para perguntas frequentes sobre o conector Excel no Lakeflow Connect.
Posso ler todas as folhas de uma vez?
O parser lê apenas uma folha de um ficheiro Excel de cada vez. Por defeito, lê a primeira folha. Pode especificar uma folha diferente usando essa dataAddress opção. Para processar múltiplas folhas, primeiro recupere a lista de folhas definindo a operation opção para listSheets, depois itere sobre os nomes das folhas e leia cada uma fornecendo o seu nome na dataAddress opção.
Posso ingerir ficheiros Excel com layouts complexos ou múltiplas tabelas por folha?
Por defeito, o analisador lê todas as células Excel desde a célula superior esquerda até à célula inferior direita não vazia. Pode especificar um intervalo de células diferente usando essa dataAddress opção.
Como são tratadas as fórmulas e as células fundidas?
As fórmulas são ingeridas como os seus valores calculados. Para células fundidas, apenas o valor no canto superior esquerdo é mantido (células filhas são NULL).
Posso usar a ingestão do Excel no Auto Loader e em trabalhos de streaming?
Sim, pode transmitir ficheiros Excel usando cloudFiles.format = "excel". No entanto, a evolução de esquemas não é suportada, por isso deve definir "schemaEvolutionMode" para "None".
É suportado o Excel com proteção por palavra-passe?
Não. Se esta funcionalidade for crítica para os seus fluxos de trabalho, contacte o seu representante de conta Databricks.