Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta página lista opções de entrada e saída disponíveis para APIs Spark que leem e escrevem dados.
Opções DataFrameReader
Use estas opções com DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO e Auto Loader para controlar como Azure Databricks lê ficheiros de dados.
Example
O exemplo seguinte é multiLineTrue para ler ficheiros JSON:
Python
df = spark.read.format("json").option("multiLine", True).load("/path/to/data")
Scala
val df = spark.read.format("json").option("multiLine", "true").load("/path/to/data")
SQL
SELECT * FROM read_files("/path/to/data", format => "json", multiLine => true)
Comum
As opções a seguir se aplicam a todos os formatos de arquivo.
| Key | Predefinido | Description |
|---|---|---|
ignoreCorruptFiles |
false |
Se deve ignorar arquivos corrompidos. Se verdadeiro, os trabalhos do Spark continuarão a ser executados ao encontrar arquivos corrompidos e o conteúdo que foi lido ainda será retornado. Para COPY INTO, pode observar ficheiros corrompidos saltados como numSkippedCorruptFiles na operationMetrics coluna da história do Delta Lake. Disponível em Databricks Runtime 11.3 LTS e superior. |
ignoreMissingFiles |
false para Auto Loader, true para COPY INTO (legacy) |
Se os ficheiros em falta devem ser ignorados. Se for verdade, os trabalhos Spark continuam a correr quando encontram ficheiros em falta e o conteúdo continua a ser devolvido. Disponível em Databricks Runtime 11.3 LTS e superior. |
modifiedAfter |
None | Um carimbo de data/hora opcional como filtro para processar apenas ficheiros com um carimbo de data/hora de modificação posterior ao fornecido. |
modifiedBefore |
None | Um carimbo de data/hora opcional como filtro para ingerir apenas arquivos que tenham um carimbo de data/hora de modificação antes do carimbo de data/hora fornecido. |
pathGlobFilter ou fileNamePattern |
None | Um padrão glob potencial a ser fornecido para selecionar ficheiros. Equivalente a PATTERN em COPY INTO (legado).
fileNamePattern pode ser usado em read_files. |
recursiveFileLookup |
false |
Quando true, esta opção pesquisa em diretórios aninhados mesmo que os seus nomes não sigam um esquema de nomes de partição como date=2019-07-01. |
Avro
| Key | Predefinido | Description |
|---|---|---|
avroSchema |
None | Esquema opcional fornecido por um usuário no formato Avro. Ao ler Avro, esta opção pode ser definida para um esquema evoluído que é compatível mas diferente do esquema Avro real. O esquema de desserialização é consistente com o esquema evoluído. Por exemplo, se definir um esquema evoluído contendo uma coluna adicional com um valor predefinido, o resultado de leitura contém também a nova coluna. |
avroSchemaEvolutionMode |
none |
Como lidar com a evolução de esquemas ao usar um registo de esquemas. Valores válidos: none (ignorar alterações no esquema e continuar o trabalho), restart (quando são detetadas alterações no esquema, levanta um UnknownFieldException e requer um reinício do trabalho). |
datetimeRebaseMode |
LEGACY |
Controla a rebase dos valores DATE e TIMESTAMP entre os calendários gregoriano Juliano e Proléptico. Valores válidos: EXCEPTION, LEGACY, e CORRECTED. |
enableStableIdentifiersForUnionType |
false |
Se deve usar nomes de campos estáveis para os tipos Avro Union. Quando ativados, os nomes dos campos de tipos de união são derivados dos seus nomes de tipo em minúsculas (por exemplo, member_int, member_string). Faz exceção se dois nomes de tipo forem idênticos após minúsculas. |
mergeSchema |
false |
Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo.
mergeSchema para Avro não flexibiliza tipos de dados. |
mode |
FAILFAST |
Modo parser para lidar com registos corrompidos. Valores válidos: FAILFAST (lança uma exceção), PERMISSIVE (define campos malformados como nulos), DROPMALFORMED (elimina silenciosamente registos maus). |
readerCaseSensitive |
true |
Especifica o comportamento de sensibilidade a maiúsculas quando rescuedDataColumn está habilitado. Se for verdadeiro, resgate as colunas de dados cujos nomes diferem consoante o caso do esquema. Quando falso, leia os dados de forma insensível a maiúsculas minúsculas. |
recursiveFieldMaxDepth |
None | A profundidade máxima de recursão para campos Avro recursivos. Defina para 1 truncar todos os corpos recursivos, 2 permitindo um nível de recursão, e assim sucessivamente até 15. Quando não é definido ou 0, corpos recursivos não são permitidos. Valores válidos: 0 para 15. |
rescuedDataColumn |
None | Se todos os dados que não podem ser interpretados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo diferenciação de maiúsculas e minúsculas nas colunas) devem ser coletados numa coluna separada. Esta coluna é incluída por padrão ao usar o Auto Loader.COPY INTO (legado) não suporta a coluna de dados resgatados porque não é possível definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão.Para obter mais detalhes, consulte O que é a coluna de dados resgatados?. |
stableIdentifierPrefixForUnionType |
member_ |
O prefixo a usar para nomes de campos de tipos de união estáveis quando enableStableIdentifiersForUnionType=true. |
CSV
| Key | Predefinido | Description |
|---|---|---|
badRecordsPath |
None | O caminho para armazenar ficheiros para registar informações sobre registos CSV defeituosos. |
charToEscapeQuoteEscaping |
\0 |
O personagem usado para escapar do personagem usado para escapar de citações. Por exemplo, para o seguinte registo: [ " a\\", b ]
|
columnNameOfCorruptRecord |
_corrupt_record |
Suportado para Auto Loader. Não suportado para COPY INTO (legado).A coluna para armazenar registros que estão malformados e não podem ser analisados. Se o mode para análise estiver definido como DROPMALFORMED, esta coluna estará vazia. |
comment |
\0 |
Define o caractere que representa um comentário de linha quando encontrado no início de uma linha de texto. Use '\0' para desativar a opção de saltar comentários. |
dateFormat |
yyyy-MM-dd |
O formato para analisar cadeias de caracteres de data. |
emptyValue |
Cadeia vazia | Representação de cadeia de caracteres de um valor vazio. |
enableDateTimeParsingFallback |
false |
Se deve recorrer ao comportamento de análise de data e hora legado quando um valor não pode ser analisado com o formato especificado. Quando false, falhas de análise geram um erro ou produzem nulo dependendo de mode. |
encoding ou charset |
UTF-8 |
O nome da codificação dos arquivos CSV. Consulte java.nio.charset.Charset para a lista de opções.
UTF-16 e UTF-32 não pode ser usado quando multiline é true. |
enforceSchema |
true |
Se deve aplicar à força o esquema especificado ou inferido aos arquivos CSV. Se a opção estiver ativada, os cabeçalhos dos arquivos CSV serão ignorados. Esta opção é ignorada por padrão ao usar o Auto Loader para resgatar dados e permitir a evolução do esquema. |
escape |
\ |
O caractere de escape a ser usado ao analisar os dados. |
extension |
csv |
A extensão do nome de ficheiro esperada. Ficheiros sem esta extensão são filtrados durante as leituras. |
failOnUnknownFields |
false |
Se falhar quando o registo CSV contém colunas que não estão presentes no esquema. Quando false, colunas não reconhecidas são silenciosamente largadas ou resgatadas dependendo de rescuedDataColumn. |
failOnWidenedFields |
false |
Se falhar quando um valor de campo não pode ser analisado como o tipo de esquema declarado sem alargamento. Quando false, valores alargados por tipo são silenciosamente resgatados dependendo de rescuedDataColumn. A definição failOnUnknownFields=true pode mascarar os efeitos desta opção. |
header |
false |
Se os arquivos CSV contêm um cabeçalho. O Auto Loader assume que os arquivos têm cabeçalhos ao inferir o esquema. |
ignoreLeadingWhiteSpace |
false |
Se os espaços em branco iniciais devem ser ignorados para cada valor analisado. |
ignoreTrailingWhiteSpace |
false |
Se deve ignorar espaços em branco à direita para cada valor analisado. |
inferSchema |
false |
Se é necessário inferir os tipos de dados dos registros CSV analisados ou assumir que todas as colunas são de StringType. Requer uma passagem adicional sobre os dados, se definido como true. Em vez disso, use o cloudFiles.inferColumnTypes para o Auto Loader. |
inputBufferSize |
1048576 (1 MB) |
O tamanho do buffer em bytes para o parser CSV. Útil para ajustar o uso de memória ao analisar grandes ficheiros CSV. Valores válidos: inteiros positivos. |
lineSep |
Nenhum, que cobre \r, \r\n, e \n |
Uma cadeia de caracteres entre dois registros CSV consecutivos. |
locale |
US |
Um java.util.Locale identificador. Influencia as definições padrão para data, o timestamp e a interpretação de decimais dentro do CSV. |
maxCharsPerColumn |
-1 |
Número máximo de caracteres esperados de um valor a ser analisado. Pode ser usado para evitar erros de memória. Por predefinição, é -1, que significa ilimitado. Valores válidos: inteiros positivos, ou -1 para ilimitado. |
maxColumns |
20480 |
O limite rígido de quantas colunas um registro pode ter. Valores válidos: inteiros positivos. |
mergeSchema |
false |
Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. Ativado por padrão para o Auto Loader ao inferir o esquema. |
mode |
PERMISSIVE |
Modo de análise para lidar com registros malformados. Valores válidos: PERMISSIVE, DROPMALFORMED, FAILFAST. |
multiLine |
false |
Se os registros CSV abrangem várias linhas. |
nanValue |
NaN |
A representação em forma de texto de um valor não numérico ao analisar as colunas FloatType e DoubleType. |
negativeInf |
-Inf |
A representação textual do infinito negativo ao processar as colunas FloatType ou DoubleType. |
nullValue |
Cadeia vazia | Representação de cadeia de caracteres de um valor nulo. |
parserCaseSensitive (preterido) |
false |
Durante a leitura de arquivos, verificar se as colunas declaradas no cabeçalho devem ser alinhadas com o esquema considerando a diferenciação entre maiúsculas e minúsculas. Isso é true por padrão para o Auto Loader. As colunas que diferem apenas pelo uso de letras maiúsculas serão resgatadas no rescuedDataColumn se estiver ativado. Esta opção foi preterida em favor do readerCaseSensitive. |
positiveInf |
Inf |
A cadeia de caracteres que representa o infinito positivo ao analisar colunas FloatType ou DoubleType. |
preferDate |
true |
Tenta inferir cadeias de caracteres como datas em vez de timestamps quando possível. Também deve usar inferência de esquema, seja ativando inferSchema ou usando cloudFiles.inferColumnTypes com o Auto Loader. |
quote |
" |
O caractere usado para escapar de valores onde o delimitador de campo é parte do valor. |
readerCaseSensitive |
true |
Especifica o comportamento de sensibilidade a maiúsculas quando rescuedDataColumn está habilitado. Se for verdadeiro, resgate as colunas de dados cujos nomes diferem consoante o caso do esquema. Quando falso, leia os dados de forma insensível a maiúsculas minúsculas. |
rescuedDataColumn |
None | Se todos os dados que não podem ser interpretados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo diferenciação de maiúsculas e minúsculas nas colunas) devem ser coletados numa coluna separada. Esta coluna é incluída por padrão ao usar o Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados resgatados?.COPY INTO (legado) não suporta a coluna de dados resgatados porque não é possível definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão. |
sep ou delimiter |
, |
A sequência de caracteres usada para separar colunas. |
singleVariantColumn |
None | Quando definido como nome de coluna, lê todo o registo CSV numa única VariantType coluna com esse nome, em vez de analisar cada campo numa coluna própria. Requer header=true. |
skipRows |
0 |
O número de linhas desde o início do arquivo CSV que devem ser ignoradas (incluindo linhas comentadas e vazias). Se header for verdadeiro, o cabeçalho será a primeira linha que não for ignorada nem comentada. Valores válidos: inteiros positivos ou 0. |
timeFormat |
HH:mm:ss |
O formato para análise TimeType dos valores das colunas. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
O formato para analisar strings de data e hora. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
O formato para análise de carimbo temporal sem strings de fuso horário (TimestampNTZType). |
timeZone |
None | O java.time.ZoneId a utilizar ao analisar horários e datas. |
unescapedQuoteHandling |
STOP_AT_DELIMITER |
A estratégia para lidar com citações não escapadas. Opções permitidas:
|
Excel
| Key | Predefinido | Description |
|---|---|---|
dataAddress |
None | O alcance das células para ler na sintaxe do Excel. Se omitido, lê todas as células válidas da primeira folha. Use "SheetName!C5:H10" para ler um intervalo a partir de uma folha nomeada, "C5:H10" para ler um intervalo a partir da primeira folha, ou "SheetName" para ler todos os dados de uma folha específica. |
headerRows |
0 |
Número de linhas iniciais para usar como cabeçalhos de nomes de colunas. Quando dataAddress especificado, aplica-se dentro do intervalo da célula. Quando 0, os nomes das colunas são gerados automaticamente como _c1, _c2, _c3, etc. Valores válidos: 0, 1. |
ignoreMissingSheet |
false |
Se deve saltar silenciosamente ficheiros que não contêm a folha especificada por dataAddress. Quando false, é lançado um erro se um ficheiro não tiver a folha solicitada. Só se aplica quando o nome de uma folha está especificado em dataAddress. Valores válidos: true, false. |
includePhoneticRuns |
false |
Se deve incluir anotações fonéticas (como pinyin ou furigana) concatenadas a valores de cadeia de células ao ler ficheiros XLSX. Valores válidos: true, false. |
operation |
readSheet |
A operação a realizar no livro de exercícios Excel. Valores válidos: readSheet (lê dados de uma folha), listSheets (devolve uma estrutura com campos sheetIndex: long e sheetName: String para cada folha). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
String de formatação personalizada para valores de carimbo temporal sem fuso horário armazenados como strings no Excel. Os formatos de data personalizados seguem os formatos dos Datetime patterns. |
dateFormat |
yyyy-MM-dd |
String de formatação personalizada para valores de string lida como Date. Os formatos de data personalizados seguem os formatos dos Datetime patterns. |
JSON
| Key | Predefinido | Description |
|---|---|---|
allowBackslashEscapingAnyCharacter |
false |
Se deve permitir que as barras invertidas escapem de qualquer personagem que a consiga. Se não estiver ativada, apenas os caracteres explicitamente enumerados na especificação JSON poderão ser escapados. |
allowComments |
false |
Se deve permitir o uso de comentários de estilo Java, C e C++ ('/', '*'e '//' variedades) dentro do conteúdo analisado ou não. |
allowNonNumericNumbers |
true |
Permitir que o conjunto de tokens "not-a-number" (NaN) seja considerado como valores de número flutuante válidos. |
allowNumericLeadingZeros |
false |
Permitir ou não que números integrais comecem com zeros adicionais (ignorantes) (por exemplo, 000001). |
allowSingleQuotes |
true |
Se deve permitir o uso de aspas simples (apóstrofo, caractere '\') para citar cadeias de caracteres (nomes e valores String). |
allowUnquotedControlChars |
false |
Se as cadeias de caracteres JSON devem conter caracteres de controle sem escape (caracteres ASCII com valor inferior a 32, incluindo caracteres de tabulação e alimentação de linha) ou não. |
allowUnquotedFieldNames |
false |
Se permitir o uso de nomes de campos não aspas, que são permitidos pelo JavaScript, mas não pela especificação JSON. |
alternateVariantEncoding |
None | A codificação usada para valores variantes no JSON de origem. Definir para Z85 decodificar valores variantes que foram codificados em Base85 em vez de armazenados como JSON inline. |
badRecordsPath |
None | O caminho para armazenar ficheiros que registam as informações sobre registos JSON inválidos. Usar a badRecordsPath opção em uma fonte de dados baseada em arquivo tem as seguintes limitações:
|
columnNameOfCorruptRecord |
_corrupt_record |
A coluna para armazenar registros que estão malformados e não podem ser analisados. Se o mode para análise estiver definido como DROPMALFORMED, esta coluna estará vazia. |
dateFormat |
yyyy-MM-dd |
O formato para analisar cadeias de caracteres de data. |
dropFieldIfAllNull |
false |
Se as colunas de todos os valores nulos ou matrizes e estruturas vazias devem ser ignoradas durante a inferência do esquema. |
encoding ou charset |
UTF-8 |
O nome da codificação dos arquivos JSON. Consulte java.nio.charset.Charset para lista de opções. Você não pode usar UTF-16 e UTF-32 quando multiline é true. |
inferTimestamp |
false |
"Se deve tentar inferir strings de data/hora como um TimestampType." Quando definido para true, a inferência de esquema pode demorar visivelmente mais tempo. Você deve habilitar cloudFiles.inferColumnTypes para usar com o Auto Loader. |
lineSep |
Nenhum, que cobre \r, \r\n, e \n |
Uma cadeia de caracteres entre dois registros JSON consecutivos. |
locale |
US |
Um java.util.Locale identificador. Influencia a data padrão, o timestamp e a análise decimal dentro do JSON. |
maxNestingDepth |
500 |
A profundidade máxima permitida de aninhamento para objetos e arrays JSON. Aumente este valor para documentos profundamente aninhados. Valores válidos: inteiros positivos. |
maxNumLen |
1000 |
O comprimento máximo dos tokens numéricos na entrada JSON. Aumente este valor para JSON com literais numéricos grandes. Valores válidos: inteiros positivos. |
maxStringLen |
ilimitado | O comprimento máximo dos valores das strings na entrada JSON. Definido para limitar o uso de memória ao analisar JSON com strings grandes. Valores válidos: inteiros positivos. |
mode |
PERMISSIVE |
Modo de análise para lidar com registros malformados. Valores válidos: PERMISSIVE, DROPMALFORMED, FAILFAST. |
multiLine |
false |
Se os registros JSON abrangem várias linhas. |
prefersDecimal |
false |
Procura inferir cadeias de caracteres como DecimalType em vez de float ou double, quando possível. Também deve usar inferência de esquema, seja ativando inferSchema ou usando cloudFiles.inferColumnTypes com o Auto Loader. |
primitivesAsString |
false |
Se se deve inferir tipos primitivos, como números e booleanos, como StringType. |
readerCaseSensitive |
true |
Especifica o comportamento de sensibilidade a maiúsculas quando rescuedDataColumn está habilitado. Se for verdadeiro, resgate as colunas de dados cujos nomes diferem consoante o caso do esquema. Quando falso, leia os dados de forma insensível a maiúsculas minúsculas. Disponível em Databricks Runtime 13.3 e superiores. |
rescuedDataColumn |
None | Se deve recolher todos os dados que não podem ser analisados devido a um desajuste de tipo de dado ou de esquema (incluindo o caso das colunas) para uma coluna separada. Esta coluna é incluída por padrão ao usar o Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados resgatados?.COPY INTO (legado) não suporta a coluna de dados resgatados porque não é possível definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão. |
singleVariantColumn |
None | Se deve ingerir o documento JSON completo, analisado numa única coluna Variante com a string especificada como nome da coluna. Se não estiverem definidos, os campos JSON são absorvidos nas suas próprias colunas. Valores válidos: qualquer cadeia. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
O formato para analisar strings de data e hora. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
O formato para análise de carimbo temporal sem strings de fuso horário (TimestampNTZType). |
timeZone |
None | O java.time.ZoneId a utilizar ao analisar horários e datas. |
upgradeExceptionAsBadRecord |
false |
Se deve tratar as exceções de atualização de tipo (por exemplo, quando um valor não pode ser alargado para o tipo de coluna declarado) como registos maus em vez de lançar uma exceção. |
Kafka
Para a lista completa de opções de leitores Kafka, consulte DataStreamReader Opções Kafka. As seguintes opções aplicam-se apenas a leituras em lote que usam spark.read.format("kafka").
| Key | Predefinido | Description |
|---|---|---|
endingOffsets |
latest |
Onde parar de ler. Valores válidos: latest, ou uma cadeia JSON de deslocamentos para cada partição, como {"topicA":{"0":50,"1":-1}}.Na cadeia JSON, -1 está o deslocamento mais recente.
-2, que é o deslocamento mais antigo, não é permitido como deslocamento final. |
endingOffsetsByTimestamp |
None | Deslocamentos de terminação por partição especificados como carimbos temporais em milissegundos. Valores válidos: uma cadeia JSON de carimbos temporais para cada partição, como {"topicA":{"0":2000,"1":3000}}. |
endingTimestamp |
None | Carimbo temporal global de fim em milissegundos aplicado a todas as partições. Valores válidos: inteiros não negativos. |
ORC
| Key | Predefinido | Description |
|---|---|---|
mergeSchema |
false |
Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. |
Parquet
| Key | Predefinido | Description |
|---|---|---|
datetimeRebaseMode |
LEGACY |
Controla a rebase dos valores DATE e TIMESTAMP entre os calendários gregoriano Juliano e Proléptico. Valores válidos: EXCEPTION, LEGACY, e CORRECTED. |
int96RebaseMode |
LEGACY |
Gestiona o rebase dos valores de timestamps INT96 entre os calendários Juliano e Gregoriano Proléptico. Valores válidos: EXCEPTION, LEGACY, e CORRECTED. |
mergeSchema |
false |
Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. |
readerCaseSensitive |
true |
Especifica o comportamento de sensibilidade a maiúsculas quando rescuedDataColumn está habilitado. Se for verdadeiro, resgate as colunas de dados cujos nomes diferem consoante o caso do esquema. Quando falso, leia os dados de forma insensível a maiúsculas minúsculas. |
rescuedDataColumn |
None | Se todos os dados que não podem ser interpretados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo diferenciação de maiúsculas e minúsculas nas colunas) devem ser coletados numa coluna separada. Esta coluna é incluída por padrão ao usar o Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados resgatados?.COPY INTO (legado) não suporta a coluna de dados resgatados porque não é possível definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão. |
Loja estatal
Use estas opções com spark.read.format("statestore") ou a read_statestore função de valores de tabela para ler dados de estado de Streaming Estruturado. Consulte Ler informações de estado do Structured Streaming.
| Key | Predefinido | Description |
|---|---|---|
batchId |
ID de lote mais recente | O lote alvo para ler. Use para consultar um estado anterior da consulta. O lote deve ser confirmado, mas ainda não finalizado. Valores válidos: inteiros não negativos. |
operatorId |
0 |
O operador do alvo para ler. Use quando a consulta tem múltiplos operadores com estado. Valores válidos: inteiros não negativos. |
storeName |
DEFAULT |
O nome da loja de estado alvo para ler. Use quando o operador com estado tem múltiplas instâncias de armazenamento de estado. Deve especificar um ou storeNamejoinSide para uma junção stream-stream, mas não ambos. Valores válidos: qualquer cadeia. |
joinSide |
None | O lado alvo a ler para uma junção fluxo-fluxo. Deve especificar um ou storeNamejoinSide para uma junção stream-stream, mas não ambos. Valores válidos: left, right. |
snapshotStartBatchId |
None | O ID do lote do snapshot a usar como ponto de partida ao ler o estado. O leitor reconstrói o estado ao reproduzir as alterações deste instantâneo até batchId. Útil quando um snapshot está corrompido. Deve especificar juntamente com snapshotPartitionId. Não pode ser usado com readChangeFeed. Suporta a memória de estados suportada por HDFS e a memória de estados do RocksDB com o checkpointing de alterações ativado. Disponível em Databricks Runtime 15.4 LTS e superiores. Valores válidos: inteiros não negativos. |
snapshotPartitionId |
None | Se especificado, a consulta apenas lê esta partição. Deve especificar juntamente com snapshotStartBatchId. Não pode ser usado com readChangeFeed. Disponível em Databricks Runtime 15.4 LTS e superiores. Valores válidos: inteiros não negativos. |
readChangeFeed |
false |
Quando true, retorna alterações de estado ao longo de um intervalo especificado de lotes entre changeStartBatchId e changeEndBatchId. Requer changeStartBatchId. Não pode ser usado com joinSide, batchId, snapshotStartBatchId, ou snapshotPartitionId. Disponível em Databricks Runtime 16.4 LTS e superiores. Valores válidos: true, false.Para mais detalhes, consulte Ler alterações ao estado do Streaming Estruturado. |
changeStartBatchId |
None | O ID do lote inicial para a variação do intervalo de alimentação. Obrigatório quando readChangeFeed é true. Só se aplica quando readChangeFeed está definido para true. Disponível em Databricks Runtime 16.4 LTS e superiores. Valores válidos: inteiros não negativos. |
changeEndBatchId |
ID de lote mais recente | O ID do lote final para a alteração do intervalo de alimentação. Deve ser maior ou igual a changeStartBatchId. Só se aplica quando readChangeFeed está definido para true. Disponível em Databricks Runtime 16.4 LTS e superiores. Valores válidos: inteiros não negativos. |
stateVarName |
None | O nome da variável de estado a ler. O nome da variável de estado é o nome único de cada variável dentro da init função de a StatefulProcessor usada pelo transformWithState operador. É obrigatório quando usa o transformWithState operador. Disponível em Databricks Runtime 16.4 LTS e superiores. Valores válidos: qualquer cadeia. |
readRegisteredTimers |
false |
Quando true, lê temporizadores registados usados pelo transformWithState operador. Aplica-se apenas ao transformWithState operador. Disponível em Databricks Runtime 16.4 LTS e superiores. Valores válidos: true, false. |
flattenCollectionTypes |
true |
Quando true, achata os registos devolvidos para as variáveis de estado do mapa e da lista. Quando false, retorna registos como um SQL Array Spark ou Map. Aplica-se apenas ao transformWithState operador. Disponível em Databricks Runtime 16.4 LTS e superiores. Valores válidos: true, false. |
Texto
| Key | Predefinido | Description |
|---|---|---|
encoding |
UTF-8 |
O nome da codificação do separador de linha do arquivo TEXT. Para obter uma lista de opções, consulte java.nio.charset.Charset. O conteúdo do ficheiro não é afetado por esta opção e é lido as-is. |
lineSep |
Nenhum, que cobre \r, \r\n e \n |
Uma cadeia de caracteres entre dois registros TEXT consecutivos. |
wholeText |
false |
Se um arquivo deve ser lido como um único registro. |
XML
| Key | Predefinido | Description |
|---|---|---|
rowTag |
None | A etiqueta de linha dos ficheiros XML a serem tratados como uma linha. No exemplo XML <books> <book><book>...<books>, o valor apropriado é book. Esta é uma opção necessária. |
samplingRatio |
1.0 |
Define uma fração de linhas usadas para inferência de esquema. As funções internas XML ignoram essa opção. Valores válidos: 0.0 para 1.0. |
excludeAttribute |
false |
Se os atributos devem ser excluídos em elementos. |
mode |
None | Modo para lidar com registros corrompidos durante a análise.
PERMISSIVE: Para registros corrompidos, coloca a cadeia de caracteres malformada em um campo configurado por columnNameOfCorruptRecord, e define campos malformados como null. Para manter registros corrompidos, você pode definir um string campo de tipo nomeado columnNameOfCorruptRecord em um esquema definido pelo usuário. Se um esquema não tiver o campo, os registros corrompidos serão descartados durante a análise. Ao inferir um esquema, o analisador adiciona implicitamente um columnNameOfCorruptRecord campo em um esquema de saída.
DROPMALFORMED: Ignora registros corrompidos. Este modo não é suportado para funções incorporadas XML.
FAILFAST: Lança uma exceção quando o analisador encontra registros corrompidos. |
inferSchema |
true |
Se true, tenta inferir um tipo apropriado para cada coluna do DataFrame resultante. Se false, todas as colunas resultantes são do string tipo. As funções internas XML ignoram essa opção. |
columnNameOfCorruptRecord |
spark.sql.columnNameOfCorruptRecord |
Permite renomear o novo campo que contém uma cadeia malformada criada pelo PERMISSIVE modo. |
attributePrefix |
None | O prefixo para atributos, usado para diferenciar atributos de elementos. Este será o prefixo para nomes de campos. A predefinição é _. Pode estar vazio para ler XML, mas não para escrever. Também se aplica às opções XML do DataFrameWriter. |
valueTag |
_VALUE |
A etiqueta usada para os dados de caracteres dentro de elementos que também possuem atributos ou subelementos. O usuário pode especificar o valueTag campo no esquema ou ele será adicionado automaticamente durante a inferência do esquema quando os dados de caracteres estiverem presentes em elementos com outros elementos ou atributos. Também se aplica às opções XML do DataFrameWriter. |
encoding |
UTF-8 |
Para leitura, decodifica os arquivos XML pelo tipo de codificação fornecido. Para escrever, especifica a codificação (charset) de arquivos XML salvos. As funções internas XML ignoram essa opção. Também se aplica às opções XML do DataFrameWriter. |
ignoreSurroundingSpaces |
true |
Se os espaços em branco em redor dos valores devem ser ignorados. Os dados de caracteres compostos apenas por espaços em branco são ignorados. |
rowValidationXSDPath |
None | Caminho para um arquivo XSD opcional que é usado para validar o XML para cada linha individualmente. Linhas que não validam são tratadas como erros de análise sintática. O XSD não afeta de outra forma o esquema, seja fornecido ou inferido. |
ignoreNamespace |
false |
Se true, os prefixos dos namespaces em elementos e atributos XML são ignorados. Tags <abc:author> e <def:author>, por exemplo, são tratadas como se ambas fossem apenas <author>. Os namespaces não podem ser ignorados no elemento rowTag, apenas os seus filhos legíveis. A análise XML não é sensível a namespaces, mesmo quando false. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Sequência de formato de timestamp personalizada que segue o padrão datetime. Isto aplica-se ao timestamp tipo. Também se aplica às opções XML do DataFrameWriter. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Cadeia de formato personalizada para timestamp sem fuso horário que segue o padrão de formato de data e hora. Isso se aplica ao tipo TimestampNTZType. Também se aplica às opções XML do DataFrameWriter. |
dateFormat |
yyyy-MM-dd |
Cadeia de caracteres de formato de data personalizado que segue o esquema de formato datetime pattern. Isto aplica-se ao tipo de data. Também se aplica às opções XML do DataFrameWriter. |
locale |
en-US |
Define uma localidade como uma marca de idioma no formato IETF BCP 47. Por exemplo, locale é usado durante a análise de datas e marcadores temporais. |
nullValue |
Corda null |
Define a representação de cadeia de caracteres de um valor nulo. Quando isso é null, o analisador não escreve atributos e elementos para campos. Também se aplica às opções XML do DataFrameWriter. |
readerCaseSensitive |
true |
Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando a rescueDataColumn está ativada. Se for verdadeiro, resgate as colunas de dados cujos nomes diferem consoante o caso do esquema. Quando falso, leia os dados de forma insensível a maiúsculas minúsculas. |
rescuedDataColumn |
None | Se devem ser recolhidos todos os dados que não podem ser analisados devido a uma incompatibilidade de tipos de dados e de esquema (incluindo a capitalização das colunas) para uma coluna separada. Esta coluna é incluída por padrão ao usar o Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados resgatados?.
COPY INTO (legado) não suporta a coluna de dados resgatados porque não é possível definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão. |
singleVariantColumn |
none |
Especifica o nome da coluna de variante única. Se esta opção for especificada para leitura, analise todo o registo XML numa única coluna Variante com o valor da cadeia de opções dado como nome da coluna. Se esta opção for fornecida, escreva o valor da única coluna Variant em ficheiros XML. Também se aplica às opções XML do DataFrameWriter. |
useLegacyXMLParser |
true |
Se deve usar o parser XML legado. O parser legado tem uma validação menos rigorosa para conteúdos malformados, mas é menos eficiente em termos de memória. Defina para false optar pelo parser padrão mais rigoroso. |
wildcardColName |
xs_any |
O nome da coluna é usado para capturar elementos XML que correspondem ao elemento de esquema coringa (xs:any). Não pode ser usado em conjunto com rescuedDataColumn. |
Opções DataStreamReader
Use estas opções para DataStreamReader.option() configurar leituras em streaming a partir de tabelas Delta Lake e outras fontes baseadas em ficheiros.
Para opções de formatos de ficheiro (JSON, CSV, Parquet e outros), consulte as opções DataFrameReader.
Para opções de Auto Loader (cloudFiles.*), veja Auto Loader.
Example
O exemplo seguinte define maxFilesPerTrigger para 10 um curso de água de mesa do Lago Delta:
Python
df = spark.readStream.format("delta").option("maxFilesPerTrigger", 10).load("/path/to/delta-table")
Scala
val df = spark.readStream.format("delta").option("maxFilesPerTrigger", "10").load("/path/to/delta-table")
Comum
As seguintes opções aplicam-se às tabelas Delta Lake e a outras fontes de streaming baseadas em ficheiros.
| Key | Predefinido | Description |
|---|---|---|
cleanSource |
off |
Como lidar com ficheiros fonte depois de serem processados pelo stream. Valores válidos: off (sem ação), delete (eliminar permanentemente o ficheiro fonte), archive (mover para sourceArchiveDir). Quando definido para archive, sourceArchiveDir também deve ser definido. Não se aplica ao streaming de mesa do Delta Lake. |
fileNameOnly |
false |
Se deve identificar ficheiros já processados apenas pelo nome do ficheiro em vez de pelo caminho completo. Quando true, ficheiros em caminhos diferentes com o mesmo nome de ficheiro são tratados como o mesmo ficheiro e não são reprocessados. Não se aplica ao streaming de mesa do Delta Lake. |
latestFirst |
false |
Se deve processar primeiro os ficheiros mais recentemente modificados dentro de cada micro-lote. Útil quando se quer processar os dados mais recentes o mais rapidamente possível. Quando true e maxFilesPerTrigger ou maxBytesPerTrigger está definido, maxFileAge é ignorado. Não se aplica ao streaming de mesa do Delta Lake. |
maxBytesPerTrigger |
None | Soft maximum para a quantidade de dados processados em cada micro-lote. Um lote pode processar mais do que o limite se a menor unidade de entrada o exceder. Quando usado em conjunto com maxFilesPerTrigger, o micro-lote processa dados até que qualquer um dos limites seja atingido primeiro. Valores válidos: inteiros positivos.Em vez disso, use o cloudFiles.maxBytesPerTrigger para o Auto Loader. Ver Comum. |
maxCachedFiles |
10000 |
Número máximo de ficheiros não processados para armazenar em cache para micro-lotes subsequentes. Defina para 0 desligar o cache. Aumente este valor quando o diretório de origem contiver muitos ficheiros novos para cada trigger. Não se aplica ao streaming de mesa do Delta Lake. Valores válidos: inteiros positivos ou 0. |
maxFileAge |
7d |
Idade máxima dos ficheiros considerados para processamento, em relação ao carimbo temporal do ficheiro mais recentemente modificado em vez da hora atual do sistema. Ficheiros mais antigos do que este limite são ignorados. Aceita cadeias de duração como 7d ou 4h. Ignorado quando latestFirst está true e maxFilesPerTrigger /ou maxBytesPerTrigger está definido. Não se aplica ao streaming de mesa do Delta Lake. |
maxFilesPerTrigger |
1000 para Delta Lake e Auto Loader. Não há limite para outras fontes baseadas em ficheiros. |
Limite superior para o número de ficheiros novos processados em cada micro-lote. Quando usado em conjunto com maxBytesPerTrigger, o micro-lote processa dados até que qualquer um dos limites seja atingido primeiro. Valores válidos: inteiros positivos.Em vez disso, use o cloudFiles.maxFilesPerTrigger para o Auto Loader. Ver Comum. |
sourceArchiveDir |
None | Caminho para o diretório de arquivo quando cleanSource está definido como archive. Os ficheiros fonte são movidos para este caminho após o processamento, preservando a sua estrutura de diretórios relativa. Não se aplica ao streaming de mesa do Delta Lake. |
Carregador Automático
Use estas opções com a cloudFiles fonte para configurar o Auto Loader para streaming de ingestão a partir do armazenamento na cloud. As opções específicas da cloudFiles fonte são prefixadas com cloudFiles para as manter num espaço de nomes separado das outras opções de fonte de Streaming Estruturado .
Comum
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.allowOverwrites |
false |
Se as alterações do arquivo de diretório de entrada devem ser permitidas para substituir os dados existentes. Para obter considerações de configuração, consulte O Auto Loader processa o ficheiro novamente quando o ficheiro é anexado ou substituído?. |
cloudFiles.backfillInterval |
None | O Auto Loader pode acionar backfills assíncronos a intervalos regulares. Por exemplo 1 day , para encher diariamente ou 1 week para encher semanalmente. Para obter mais informações, consulte Acionar backfills regulares usando cloudFiles.backfillInterval.Não utilize quando cloudFiles.useManagedFileEvents estiver definido como true. |
cloudFiles.cleanSource |
OFF |
Se deseja excluir automaticamente os arquivos processados do diretório de entrada. Quando definido como OFF (padrão), nenhum arquivo é excluído.Quando definido como DELETE, o Auto Loader exclui automaticamente os arquivos 30 dias após serem processados. Para fazer isso, Auto Loader deve ter permissões de gravação para o diretório de origem.Quando definido como MOVE, o Auto Loader move automaticamente os ficheiros para a localização especificada no prazo de cloudFiles.cleanSource.moveDestination 30 dias após o seu processamento. Para fazer isso, o Auto Loader deve ter permissões de gravação para o diretório de origem, bem como para o local de movimentação.Um ficheiro é considerado processado quando tem um valor não nulo para commit_time no resultado da cloud_files_state função de valor de tabela. Consulte cloud_files_state função de valor de tabela. A espera adicional de 30 dias após o processamento pode ser configurada usando cloudFiles.cleanSource.retentionDuration.Revise as seguintes considerações antes de ativar cloudFiles.cleanSource:
Disponível em Databricks Runtime 16.4 e superiores. |
cloudFiles.cleanSource.retentionDuration |
30 days |
Quantidade de tempo para esperar antes que os arquivos processados se tornem candidatos para arquivamento com cleanSource. Deve ser superior a 7 dias para DELETE. Nenhuma restrição mínima para MOVE.O valor é uma cadeia CalendarInterval . Por exemplo, "14 days", , "30 days""2 weeks", ou "1 month".Disponível em Databricks Runtime 16.4 e superiores. |
cloudFiles.cleanSource.moveDestination |
None | Caminho para guardar ficheiros processados quando cloudFiles.cleanSource está configurado para MOVE. Isto pode ser um caminho de armazenamento na cloud ou um caminho de volume do Unity Catalog (por exemplo, /Volumes/my_catalog/my_schema/my_volume/archive/).O local de mudança deve:
Auto Loader deve ter permissões de gravação para este diretório. Disponível em Databricks Runtime 16.4 e superiores. |
cloudFiles.format |
Nenhum (opção obrigatória) | O formato de ficheiro de dados no caminho de origem. Os valores válidos incluem:
|
cloudFiles.includeExistingFiles |
true |
Se deve incluir arquivos existentes no caminho de entrada de processamento de fluxo ou apenas processar novos arquivos que chegam após a configuração inicial. Essa opção é avaliada somente quando você inicia um fluxo pela primeira vez. Alterar essa opção depois de reiniciar o fluxo não tem efeito. |
cloudFiles.inferColumnTypes |
false |
Se é necessário inferir tipos exatos de coluna ao utilizar a inferência de esquema. Por padrão, as colunas são inferidas como cadeias de caracteres ao inferir conjuntos de dados JSON e CSV. Consulte inferência de esquema para obter mais detalhes. |
cloudFiles.maxBytesPerTrigger |
None | O número máximo de novos bytes a serem processados em cada acionamento. Você pode especificar uma cadeia de caracteres de byte, como 10g para limitar cada microlote a 10 GB de dados. Este é um máximo suave, que pode ser excedido em determinadas condições. Se você tiver arquivos de 3 GB cada, o Azure Databricks processará 12 GB em um microlote. Quando usado em conjunto com cloudFiles.maxFilesPerTrigger, o Azure Databricks consome até ao limite inferior de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, aquele que for atingido primeiro. Esta opção não tem efeito quando usada com Trigger.Once() (Trigger.Once() foi preterido).No Databricks Runtime 18.0 e superiores, esta opção é configurada dinamicamente e não precisa de ser definida manualmente. |
cloudFiles.maxFileAge |
None | Por quanto tempo um evento de arquivo é rastreado para fins de desduplicação. O Databricks não recomenda ajustar esse parâmetro, a menos que você esteja ingerindo dados da ordem de milhões de arquivos por hora. Consulte a seção sobre Rastreamento de eventos de arquivo para obter mais detalhes. Ajustar cloudFiles.maxFileAge de forma muito agressiva pode causar problemas na qualidade dos dados, como ingestão duplicada ou arquivos ausentes. Portanto, a Databricks recomenda uma configuração conservadora para cloudFiles.maxFileAge, como 90 dias, que é semelhante ao que soluções comparáveis de ingestão de dados recomendam. |
cloudFiles.maxFilesPerTrigger |
1000 |
O número máximo de novos arquivos a serem processados em cada gatilho. Quando usado em conjunto com cloudFiles.maxBytesPerTrigger, o Azure Databricks consome até ao limite inferior de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, aquele que for atingido primeiro. Esta opção não tem efeito quando usada com Trigger.Once() (preterido).No Databricks Runtime 18.0 e superiores, esta opção é configurada dinamicamente e não precisa de ser definida manualmente. |
cloudFiles.partitionColumns |
None | Uma lista separada por vírgulas de colunas de partição ao estilo Hive que gostaria de inferir a partir da estrutura de diretórios dos ficheiros. Colunas de partição em estilo colmeia são pares-chave-valor combinados por um sinal de igualdade como <base-path>/a=x/b=1/c=y/file.format. Neste exemplo, as colunas de partição são a, be c. Por predefinição, estas colunas são adicionadas automaticamente ao seu esquema se estiver a usar a inferência de esquema e fornecer o <base-path> a partir do qual carregar os dados. Se você fornecer um esquema, o Auto Loader espera que essas colunas sejam incluídas no esquema. Se você não quiser essas colunas como parte do seu esquema, você pode especificar "" para ignorar essas colunas. Além disso, podes usar esta opção quando pretenderes que as colunas determinem o caminho do ficheiro em diretórios complexos, como no exemplo abaixo:<base-path>/year=2022/week=1/file1.csv<base-path>/year=2022/month=2/day=3/file2.csv<base-path>/year=2022/month=2/day=4/file3.csvEspecificar cloudFiles.partitionColumns como year,month,day retorna year=2022 para file1.csv, mas as colunas month e day são null.month e day são analisados corretamente para file2.csv e file3.csv. |
cloudFiles.schemaEvolutionMode |
addNewColumns quando um esquema não é fornecido, none caso contrário |
O modo para evoluir o esquema à medida que novas colunas são descobertas nos dados. Por padrão, as colunas são inferidas como cadeias de caracteres ao inferir conjuntos de dados JSON. Consulte a evolução do esquema para obter mais detalhes. |
cloudFiles.schemaHints |
None | Informações de esquema que você fornece ao Auto Loader durante a inferência do esquema. Consulte sugestões de esquema para obter mais detalhes. |
cloudFiles.schemaLocation |
Nenhum (necessário para inferir o esquema) | O local para armazenar o esquema inferido e as alterações subsequentes. Consulte inferência de esquema para obter mais detalhes. |
cloudFiles.useStrictGlobber |
false |
Optar por usar um globber estrito que corresponda ao comportamento padrão de globbing de outras fontes de arquivos no Apache Spark. Consulte Padrões comuns de carregamento de dados para obter mais detalhes. Disponível no Databricks Runtime 12.2 LTS e superior. |
cloudFiles.validateOptions |
true |
Se deve validar as opções do Auto Loader e retornar um erro para opções desconhecidas ou inconsistentes. |
Listagem de diretórios
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.useIncrementalListing (preterido) |
auto no Databricks Runtime 17.2 e abaixo, false no Databricks Runtime 17.3 e superiores |
Esta caraterística foi preterida. O Databricks recomenda o uso do modo de notificação de arquivo com eventos de arquivo em vez de cloudFiles.useIncrementalListing.Se deve usar a listagem incremental em vez da listagem completa no modo de listagem de diretório. Por padrão, o Auto Loader faz o melhor esforço para detetar automaticamente se um determinado diretório é aplicável para a listagem incremental. Você pode usar explicitamente a listagem incremental ou usar a listagem de diretório completo definindo-a como true ou false respectivamente.A ativação incorreta da listagem incremental em um diretório não ordenado lexicamente impede que o Auto Loader descubra novos arquivos. Funciona com o Azure Data Lake Storage ( abfss://), S3 (s3://) e GCS (gs://).Disponível em Databricks Runtime 9.1 LTS e superior. Valores disponíveis: auto, true, false |
Notificação de ficheiro
Para informações sobre a configuração do modo de notificação de ficheiros, incluindo permissões necessárias na cloud, instruções de configuração e métodos de autenticação, consulte Configurar fluxos do Auto Loader em modo de notificação de ficheiros.
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.fetchParallelism |
1 |
Número de threads a usar ao obter mensagens do serviço de filas. Não utilize quando cloudFiles.useManagedFileEvents estiver definido como true. |
cloudFiles.pathRewrites |
None | Só é obrigatório se especificar um queueUrl que recebe notificações de ficheiros de vários buckets S3 e quiser usar pontos de montagem configurados para aceder a dados nesses contentores. Use esta opção para reescrever o prefixo do caminho bucket/key com o ponto de montagem. Apenas prefixos podem ser reescritos. Por exemplo, para a configuração {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}, o caminho s3://<databricks-mounted-bucket>/path/2017/08/fileA.json é reescrito em dbfs:/mnt/data-warehouse/2017/08/fileA.json.Não utilize quando cloudFiles.useManagedFileEvents estiver definido como true. |
cloudFiles.resourceTag |
None | Uma série de pares de tags chave-valor para ajudar a associar e identificar recursos relacionados, por exemplo:cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue") .option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")Para obter mais informações sobre a AWS, consulte Tags de alocação de custos do Amazon SQS e Configurando tags para um tópico do Amazon SNS. (1) Para obter mais informações sobre o Azure, consulte Nomeação de filas e metadados e a cobertura de properties.labels em Assinaturas de Eventos. O Auto Loader armazena esses pares de tags chave-valor em JSON como rótulos.
(1)Para obter mais informações sobre o GCP, consulte Relatório de uso com etiquetas. (1) Não utilize quando cloudFiles.useManagedFileEvents estiver definido como true. Em vez disso, defina tags de recursos usando o console do provedor de nuvem. |
cloudFiles.useManagedFileEvents |
false |
Quando definido como true, o Auto Loader usa o serviço de eventos de arquivo para descobrir arquivos em seu local externo. Você pode usar essa opção somente se o caminho de carregamento estiver em um local externo com eventos de arquivo habilitados. Consulte Uso do modo de notificação de arquivo com eventos de arquivo.Os eventos de ficheiros fornecem desempenho ao nível das notificações na descoberta de ficheiros, porque o Auto Loader pode descobrir novos ficheiros após a última execução. Ao contrário da listagem de diretórios, este processo não precisa listar todos os arquivos no diretório. Existem algumas situações em que o Auto Loader usa a listagem de diretórios, mesmo que a opção de eventos de arquivo esteja ativada:
Veja Quando é que o Auto Loader com eventos de ficheiros usa listagem de diretórios? Para uma lista abrangente de situações em que o Auto Loader usa listagem de diretórios com esta opção. Disponível em Databricks Runtime 14.3 LTS e superiores. |
cloudFiles.listOnStart |
false |
Quando definido para true, o Auto Loader executa uma listagem completa de diretórios quando o fluxo inicia, em vez de começar com o token de continuação no checkpoint. Use esta opção para recuperar de erros, como CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Veja : Como posso recuperar de um CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN erro?. |
cloudFiles.useNotifications |
false |
Se deve usar o modo de notificação de arquivo para determinar quando há novos arquivos. Se false, use o modo de lista de diretórios. Consulte Comparar modos de deteção de ficheiros do Auto Loader.Não utilize quando cloudFiles.useManagedFileEvents estiver definido como true. |
(1) O Auto Loader adiciona por padrão os seguintes pares de etiquetas chave-valor, de acordo com melhores esforços:
-
vendor:Databricks -
path: O local de onde os dados são carregados. Indisponível no GCP devido a limitações de rotulagem. -
checkpointLocation: A localização do ponto de verificação do fluxo. Indisponível no GCP devido a limitações de rotulagem. -
streamId: Um identificador global exclusivo para o fluxo.
O Databricks reserva estes nomes-chave, e não se pode sobrescrever os seus valores.
Específico da cloud
O Auto Loader oferece opções para configurar a infraestrutura cloud para o modo de notificação de ficheiros. Para permissões necessárias na cloud e instruções de configuração, consulte Configurar fluxos do Auto Loader em modo de notificação de ficheiros.
AWS
Forneça as seguintes opções apenas se quiser cloudFiles.useNotifications = true e quiser que o Auto Loader configure os serviços de notificação por si:
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.region |
A região da instância EC2 | A região onde se encontra o bucket S3 de origem e onde queres criar os serviços AWS SNS e SQS. |
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.restrictNotificationSetupToSameAWSAccountId |
false |
Permita apenas notificações de eventos de buckets do AWS S3 que estejam na mesma conta que o tópico SNS. Se for verdade, o Auto Loader só aceita notificações de eventos de buckets do AWS S3 na mesma conta do tópico do SNS. Quando false, a política de acesso não restringe as configurações de bucket entre contas e de tópicos do SNS. Isso é útil quando o tópico SNS e o caminho do bucket estão associados a contas diferentes.Disponível no Databricks Runtime 17.2 e superior. |
Forneça a seguinte opção somente se você escolher cloudFiles.useNotifications = true e quiser que o Auto Loader use uma fila que você já configurou:
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.queueUrl |
None | O URL da fila SQS. Se fornecido, o Auto Loader consome eventos diretamente dessa fila em vez de configurar os seus próprios serviços AWS SNS e SQS. |
Opções de autenticação AWS
Forneça a seguinte opção de autenticação para usar uma credencial de serviço Databricks:
| Key | Predefinido | Description |
|---|---|---|
databricks.serviceCredential |
None | O nome da sua credencial de serviço Databricks . Disponível no Databricks Runtime 16.1 e superior. |
Quando as credenciais de serviço Databricks ou funções do IAM não estão disponíveis, você pode fornecer as seguintes opções de autenticação:
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.awsAccessKey |
None | O ID da chave de acesso da AWS para o usuário. Deve ser fornecido com cloudFiles.awsSecretKey. |
cloudFiles.awsSecretKey |
None | A chave de acesso secreta da AWS para o usuário. Deve ser fornecido com cloudFiles.awsAccessKey. |
cloudFiles.roleArn |
None | Um ARN de uma função do IAM para assumir, se necessário. A função pode ser assumida a partir do perfil de instância do cluster ou fornecendo credenciais com cloudFiles.awsAccessKey e cloudFiles.awsSecretKey. |
cloudFiles.roleExternalId |
None | Um identificador a ser fornecido ao assumir uma função usando cloudFiles.roleArn. |
cloudFiles.roleSessionName |
None | Um nome de sessão opcional para usar ao assumir uma função usando cloudFiles.roleArn. |
cloudFiles.stsEndpoint |
None | Um endpoint opcional para aceder ao AWS STS ao assumir uma função usando cloudFiles.roleArn. |
Azure
Você deve fornecer valores para todas as seguintes opções se especificar cloudFiles.useNotifications = true e quiser que o Auto Loader configure os serviços de notificação para você:
Se uma credencial de serviço Databricks não estiver disponível, você poderá fornecer as seguintes opções de autenticação:
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.clientId |
None | O ID do cliente ou ID do aplicativo da entidade de serviço. |
cloudFiles.clientSecret |
None | O segredo do cliente da principal entidade de serviço. |
cloudFiles.connectionString |
None | A cadeia de conexão para a conta de armazenamento, com base na chave de acesso da conta ou na assinatura de acesso compartilhado (SAS). |
cloudFiles.tenantId |
None | O ID de Tenant Azure onde o principal de serviço é criado. |
Forneça a seguinte opção apenas se definir cloudFiles.useNotifications = true e quiser que o Auto Loader use uma fila existente:
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.queueName |
None | O nome da fila do Azure. Se for fornecida, a fonte de arquivos na nuvem consome diretamente eventos dessa fila em vez de configurar os seus próprios serviços Azure Event Grid e Queue Storage. Nesse caso, seu databricks.serviceCredential ou cloudFiles.connectionString requere apenas permissões de leitura na fila. |
GCP
O Auto Loader pode configurar automaticamente os serviços de notificação para si, ao utilizar as credenciais de serviço do Databricks (). A conta de serviço criada com a credencial de serviço Databricks exigirá as permissões especificadas em Configurar fluxos do Carregador Automático no modo de notificação de arquivo.
Se uma credencial de serviço Databricks não estiver disponível, você poderá usar as Contas de serviço do Google diretamente. Você pode configurar o seu cluster para adotar uma conta de serviço seguindo a configuração de serviço do Google ou fornecer as seguintes opções de autenticação diretamente:
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.client |
None | O ID do cliente da Conta de serviço do Google. |
cloudFiles.clientEmail |
None | O e-mail da Conta de Serviço do Google. |
cloudFiles.privateKey |
None | A chave privada gerada para a Conta de Serviço do Google. |
cloudFiles.privateKeyId |
None | O ID da chave privada gerada para a Conta de Serviço do Google. |
Forneça a seguinte opção somente se você escolher cloudFiles.useNotifications = true e quiser que o Auto Loader use uma fila que você já configurou:
| Key | Predefinido | Description |
|---|---|---|
cloudFiles.subscription |
None | O nome da assinatura do Google Cloud Pub/Sub. Se a fonte de arquivos na nuvem for fornecida, ela consome eventos dessa fila em vez de configurar seus próprios serviços de notificação do GCS e Google Cloud Pub/Sub. |
Lago Delta
As seguintes opções aplicam-se ao ler a partir de uma tabela Delta Lake usando spark.readStream.
| Key | Predefinido | Description |
|---|---|---|
allowSourceColumnDrop |
None | Definido para um número de versão da tabela Delta ou "always" para permitir que o fluxo continue após as colunas serem eliminadas do esquema da tabela de origem. Quando definido para um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. **
Consulte Renomear e remover colunas utilizando o mapeamento de colunas no Delta Lake. |
allowSourceColumnRename |
None | Definir para um número de versão da tabela Delta ou "always" permitir que o fluxo continue após as colunas serem renomeadas na tabela de origem. Quando definido para um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. **
Consulte Renomear e remover colunas utilizando o mapeamento de colunas no Delta Lake. |
allowSourceColumnTypeChange |
None | Definido para um número de versão da tabela Delta ou "always" para permitir que o fluxo continue depois de os tipos de coluna serem alterados na tabela de origem. Quando definido para um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Consulte Alargamento de tipos. |
excludeRegex |
None | Um padrão de expressão regular. Ficheiros cujos caminhos correspondem ao padrão são excluídos da leitura em streaming. Útil para filtrar ficheiros que não cumprem a convenção de nomenclatura esperada. |
failOnDataLoss |
true |
Se falhar a consulta de streaming se os dados de origem foram eliminados devido à retenção de registos (logRetentionDuration). Defina para false saltar dados em falta e continuar a processar. Consulte Configuração de retenção de dados para consultas de viagem no tempo. |
ignoreChanges (preterido) |
false |
Disponível em Databricks Runtime 11.3 LTS e versões inferiores. Reemite ficheiros de dados reescritos após operações de modificação como UPDATE, MERGE INTO, DELETE, ou OVERWRITE. As linhas inalteradas podem ser emitidas juntamente com as novas, pelo que os consumidores a jusante têm de lidar com duplicados. As remoções não são propagadas nas etapas subsequentes. Substituído por skipChangeCommits Databricks Runtime 12.2 LTS e superiores. |
ignoreDeletes (preterido) |
false |
Ignora transações que apagam dados nos limites das partições (apenas as partições completas caem). Não lida com eliminações, atualizações ou outras modificações que não sejam partições. Utilize skipChangeCommits em substituição. |
readChangeFeed ou readChangeData |
false |
Se deve ativar a leitura do feed de dados de alteração para a consulta de streaming. Quando ativado, o fluxo emite alterações ao nível das linhas (inserções, atualizações e eliminações) com colunas adicionais de metadados. Consulte Como usar o feed de dados de alterações do Delta Lake no Azure Databricks. |
schemaTrackingLocation |
None | Caminho para um diretório onde o Delta Lake acompanha as alterações de esquema para a leitura em streaming. É obrigatório ao transmitir a partir de tabelas com mapeamento de colunas ativado e ao usar allowSourceColumn* opções para gerir a evolução do esquema. Deve estar dentro da checkpointLocation consulta de streaming. **
Consulte Renomear e remover colunas utilizando o mapeamento de colunas no Delta Lake. |
skipChangeCommits |
false |
Ignora transações que eliminam ou modificam registos existentes e processa apenas anexos. O Databricks recomenda esta opção para a maioria das cargas de trabalho que não utilizam fontes de alteração de dados. Disponível no Databricks Runtime 12.2 LTS e superior. Veja Saltar commits de alteração a montante com skipChangeCommits. |
startingTimestamp |
Últimas novidades disponíveis | Carimbo temporal para começar a ler. O fluxo lê todas as alterações de tabela cometidas no carimbo temporal especificado ou após o intervalo. Se o carimbo temporal preceder todos os commits disponíveis na tabela, o stream começa pelo commit mais antigo disponível. Não pode ser usado em conjunto com startingVersion. Ignorado se o checkpoint de streaming já existir.Valores válidos: uma cadeia de carimbo temporal como "2019-01-01T00:00:00.000Z" ou uma cadeia de data como "2019-01-01". |
startingVersion |
Últimas novidades disponíveis | Versão da tabela Delta para começar a ler. O fluxo lê todas as alterações cometidas na ou após a versão especificada. Especifique "latest" começar apenas pelas alterações mais recentes. Não pode ser usado em conjunto com startingTimestamp. Ignorado se o checkpoint de streaming já existir. Ver Trabalhar com histórico de tabelas. |
withEventTimeOrder |
false |
Divide o instantâneo inicial da tabela em baldes de tempo de evento para evitar que registos sejam incorretamente marcados como eventos tardios e inseridos em consultas com estado e marcas de água. Não pode ser alterado após o início do processamento inicial do snapshot sem eliminar o checkpoint. Disponível em Databricks Runtime 11.3 LTS e superior. Veja Instantâneo inicial do processo sem perder dados. |
Kafka
Use estas opções com um ou spark.readStream.format("kafka") outro spark.read.format("kafka"):
| Key | Predefinido | Description |
|---|---|---|
assign |
None | As partições específicas a consumir. Deve especificar exatamente uma das subscribeopções, subscribePattern, ou assign . Valores válidos: uma cadeia JSON, como {"topicA":[0,1],"topicB":[2,4]}. |
failOnDataLoss |
true |
Se falhar a consulta, se os dados poderiam ter-se perdido, por exemplo, devido a tópicos eliminados ou truncamento de deslocamento. Defina para false saltar dados em falta e continuar. Valores válidos: true, false.A Databricks estima de forma conservadora se os dados poderão ter sido perdidos. No entanto, isto pode causar falsos alarmes. |
fetchoffset.numretries |
3 |
O número de tentativas repetidas ao buscar os deslocamentos Kafka falha. Valores válidos: inteiros não negativos. |
fetchoffset.retryintervalms |
1000 |
O intervalo em milissegundos entre tentativas de busca deslocadas. Valores válidos: inteiros não negativos. |
groupIdPrefix |
spark-kafka-source (a transmitir), spark-kafka-relation (lote) |
O prefixo personalizado para usar no ID do grupo de consumidores Kafka gerado automaticamente. Se kafka.group.id estiver explicitamente definido, o conector ignora esta opção. Valores válidos: qualquer cadeia. |
includeHeaders |
false |
Se deve incluir cabeçalhos de mensagens Kafka como coluna na saída. Valores válidos: true, false. |
kafkaconsumer.polltimeoutms |
None | O timeout em milissegundos para a chamada do consumidor poll() Kafka. Valores válidos: inteiros positivos. |
kafka.bootstrap.servers |
None | Uma lista separada por vírgulas de endereços host:port para corretores Kafka. Define a propriedade do bootstrap.servers cliente Kafka.Se encontrar que não há dados da Kafka, verifique esta lista de endereços do corretor para moradas incorretas. Se a lista de endereços do corretor estiver incorreta, pode não haver erros. Os clientes Kafka assumem que os corretores estarão disponíveis eventualmente e tentam novamente para sempre quando recebem erros de rede. |
maxRecordsPerPartition |
None | O número máximo de registos para cada partição Spark. Quando definido, o conector divide as partições Kafka de modo que cada partição Spark leia no máximo este número de registos. Valores válidos: inteiros positivos. Também pode usar esta opção com minPartitions. Quando ambas as opções estão definidas, o Spark usa a opção que resultar em mais partições. |
minPartitions |
None | O número mínimo de partições Spark para ler a partir do Kafka. Quando definido, o conector divide grandes partições de Kafka para aumentar o paralelismo. Quando não está definido, o Spark cria uma partição para cada partição de tópico de Kafka. Útil para lidar com desvio de dados ou cargas de pico. Valores válidos: inteiros positivos. Esta opção reinicializa os consumidores Kafka para cada disparador, o que pode afetar o desempenho com SSL. |
startingOffsets |
latest (a transmitir), earliest (lote) |
O deslocamento a partir do qual a consulta inicia a leitura. Valores válidos: earliest, latest, ou uma cadeia JSON de deslocamentos para cada partição, como {"topicA":{"0":23,"1":-2}}. Na cadeia JSON, -1 está o deslocamento mais recente.
-2 é o deslocamento mais antigo.Para consultas de streaming, esta opção só se aplica quando uma nova consulta começa. As consultas retomadas usam sempre o checkpoint. Durante uma consulta, novas partições começam a ler no deslocamento mais cedo. Para consultas em lote, latest não é permitido. |
startingOffsetsByTimestamp |
None | Uma lista de deslocamentos iniciais para cada partição, especificados como carimbos temporais em milissegundos. Quando não existe deslocamento para um carimbo temporal, o comportamento da consulta é determinado por startingOffsetsByTimestampStrategy. Valores válidos: uma cadeia JSON de carimbos temporais para cada partição, como {"topicA":{"0":1000,"1":2000}}.Para consultas de streaming, esta opção só se aplica quando uma nova consulta começa. As consultas retomadas usam sempre o checkpoint. Durante uma consulta, novas partições começam a ler no deslocamento mais cedo. |
startingOffsetsByTimestampStrategy |
error |
A estratégia a usar quando não é encontrado deslocamento para um carimbo temporal especificado em startingOffsetsByTimestamp ou startingTimestamp. Valores válidos: error (gera uma exceção), latest (usa o deslocamento disponível mais recente). |
startingTimestamp |
None | O carimbo temporal global de início em milissegundos que se aplica a todas as partições. Quando não existe deslocamento para o carimbo temporal, o comportamento é controlado por startingOffsetsByTimestampStrategy. Valores válidos: inteiros não negativos. |
subscribe |
None | Os tópicos a subscrever. Deve especificar exatamente uma das subscribeopções, subscribePattern, ou assign . Valores válidos: uma lista separada por vírgulas de nomes de tópicos. |
subscribePattern |
None | O padrão usado para subscrever os temas. Deve especificar exatamente uma das subscribeopções, subscribePattern, ou assign . Por exemplo, topic.*. Valores válidos: qualquer string regular Java. |
As seguintes opções aplicam-se apenas a leituras em streaming com spark.readStream.format("kafka"):
| Key | Predefinido | Description |
|---|---|---|
bytesEstimateWindowLength |
300s |
A janela de tempo usada para estimar bytes restantes para a estimatedTotalBytesBehindLatest métrica. Valores válidos: cadeias de duração como 10m ou 600s. Consulte Recuperar métricas de Kafka. |
maxOffsetsPerTrigger |
None | O número máximo de deslocamentos a processar por intervalo de disparo. Os deslocamentos são distribuídos proporcionalmente entre as partições do tópico. Valores válidos: inteiros positivos. |
maxTriggerDelay |
15m |
O tempo máximo a esperar minOffsetsPerTrigger para acumular antes de ser ativado. Valores válidos: cadeias de duração como 10m ou 600s. |
minOffsetsPerTrigger |
None | O número mínimo de deslocamentos a acumular antes de desencadear um micro-batch. Quando maxTriggerDelay é atingido, o micro-batch corre na mesma. Valores válidos: inteiros positivos. |
Para opções de deslocamento que se aplicam apenas a leituras em lote com spark.read.format("kafka"), veja DataFrameReader opções Kafka.
Para o cliente Kafka (kafka.*) e opções de autenticação, veja Opções.
Opções DataFrameWriter
Use estas opções com DataFrameWriter.option() e DataFrameWriterV2.option() para controlar como Azure Databricks escreve dados.
Example
O exemplo seguinte define mergeSchema para True escrever uma tabela de Delta Lake:
Python
df.write.format("delta").option("mergeSchema", True).saveAsTable("my_table")
Scala
df.write.format("delta").option("mergeSchema", "true").saveAsTable("my_table")
Avro
| Key | Predefinido | Description |
|---|---|---|
avroSchema |
None | O esquema completo do Avro como uma cadeia JSON. Use esta opção para converter tipos SQL do Spark para tipos específicos de Avro. Aplica-se ao ficheiro Avro. |
avroSchemaUrl |
None | Um URL que aponta para um ficheiro de esquema Avro. Use em vez de avroSchema quando o esquema está armazenado externamente. Mutuamente exclusivo com avroSchema. Aplica-se ao ficheiro Avro. |
compression |
snappy |
Codec de compressão para usar na escrita. Valores válidos: uncompressed, deflate, snappy, bzip2, xz, . zstandard Aplica-se ao ficheiro Avro. |
recordName |
topLevelRecord |
O nome do registo de topo no esquema Avro de saída. Aplica-se ao ficheiro Avro. |
positionalFieldMatching |
false |
Se deve corresponder as colunas entre o esquema Spark e o esquema Avro pela posição do campo em vez de pelo nome. Aplica-se ao ficheiro Avro. |
recordNamespace |
Cadeia vazia | O namespace para o registo de topo no esquema Avro de saída. Aplica-se ao ficheiro Avro. |
Lago Delta e Iceberg Apache
| Key | Predefinido | Description |
|---|---|---|
clusterByAuto |
false |
Se deve ativar clustering automático de líquidos, onde o Azure Databricks seleciona colunas de agrupamento com base em padrões de consulta. Válido apenas com mode("overwrite"). Não pode ser usado com append o modo. Disponível no Databricks Runtime 16.4 e superior. Aplica-se ao uso de agrupamento líquido para tabelas. |
mergeSchema |
None | Se deve ativar a evolução do esquema para a operação de escrita. Novas colunas no DataFrame de origem são adicionadas ao esquema da tabela de destino. Aplica-se a anexos em lote e streaming. Aplica-se ao esquema da tabela de atualização. |
overwriteSchema |
None | Se deve substituir o esquema da tabela e a partição ao sobrescrever. Requer mode("overwrite") sem replaceWhere. Não pode ser utilizado com partitionOverwriteMode. Aplica-se ao esquema da tabela de atualização. |
partitionOverwriteMode |
None | O modo de sobrescrição de partições. Defina isto para dynamic sobrescrever apenas partições que contenham novos dados, deixando todas as outras partições inalteradas. Modo legado, não suportado em computação serverless nem em SQL do Databricks. Valores válidos: static, dynamic. Aplica-se a sobrescrever seletivamente dados com Delta Lake. |
replaceOn |
None | Uma expressão booleana que corresponde a linhas da tabela de destino para substituir por linhas da consulta de origem. Pode referenciar colunas tanto da tabela de destino como da consulta de origem. As linhas no alvo que correspondem a uma linha de origem são eliminadas e substituídas. Se a fonte estiver vazia, não ocorrem eliminações. Use targetAlias para desambiguar referências de colunas. Disponível em Databricks Runtime 17.1 e superiores. Aplica-se a sobrescrever seletivamente dados com Delta Lake. |
replaceUsing |
None | Uma lista separada por vírgulas de nomes de colunas usada para corresponder as linhas entre a tabela de destino e a consulta de origem. Tanto o destino como a fonte devem conter todas as colunas listadas. As linhas no destino que correspondem a uma linha de origem na comparação de igualdade são eliminadas e substituídas.
NULL Os valores são tratados como não iguais e não correspondem. Disponível em Databricks Runtime 16.3 e superiores. Aplica-se a sobrescrever seletivamente dados com Delta Lake. |
replaceWhere |
None | Uma expressão de predicado. Atómicamente sobrescrive apenas os registos que correspondem ao predicado. Aplica-se a sobrescrever seletivamente dados com Delta Lake. |
targetAlias |
None | Um alias de string para a tabela de destino. Use com replaceOn ou replaceWhere para desambiguar referências de colunas quando a condição faz referência a colunas tanto da tabela de destino como da consulta de origem. Aplica-se a sobrescrever seletivamente dados com Delta Lake. |
txnAppId |
None | Uma string única que identifica a aplicação para idempotentes escreve em foreachBatch operações. Use também txnVersion para garantir escritas exatamente uma vez em várias tabelas Delta Lake. Aplica-se à utilização foreachBatch para escritas de tabelas idempotentes. |
txnVersion |
None | Um número monotonamente crescente usado como versão de transação para escritas idempotentes em foreachBatch operações. Use também txnAppId para garantir escritas exatamente uma vez em várias tabelas Delta Lake. Aplica-se à utilização foreachBatch para escritas de tabelas idempotentes. |
optimizeWrite |
None | Se deve ativar o Auto Optimize Write para esta operação de escrita. Anula a spark.databricks.delta.optimizeWrite.enabled configuração. Aplica-se a O que é Delta Lake em Azure Databricks?. |
userMetadata |
None | Uma cadeia definida pelo utilizador anexada aos metadados de commit para a operação de escrita. Visível na saída de DESCRIBE HISTORY. Aplica-se a tabelas Enrich com metadados personalizados. |
CSV
| Key | Predefinido | Description |
|---|---|---|
charToEscapeQuoteEscaping |
\0 (não ativado) |
A personagem costumava escapar da personagem de fuga quando esta difere da personagem da citação. Aplica-se ao csv (DataFrameWriter). |
compression |
none |
Codec de compressão para usar na escrita. Valores válidos: none, bzip2, , gziplz4, snappy, deflate, zstd. Aplica-se ao csv (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Formatar uma string para valores de colunas de datas. Aplica-se ao csv (DataFrameWriter). |
emptyValue |
Cadeia vazia | A cadeia escrita para valores vazios (não nulos). Aplica-se ao csv (DataFrameWriter). |
encoding |
UTF-8 |
A codificação de caracteres para os ficheiros de saída. Aplica-se ao csv (DataFrameWriter). |
escape |
\ |
A personagem costumava escapar dos valores entre aspas. Aplica-se ao csv (DataFrameWriter). |
escapeQuotes |
true |
Se deve escapar dos caracteres de aspas dentro dos valores de campos entre aspas. Aplica-se ao csv (DataFrameWriter). |
header |
false |
Se deve escrever os nomes das colunas como a primeira linha da saída. Aplica-se ao csv (DataFrameWriter). |
ignoreLeadingWhiteSpace |
false |
Se devo cortar o espaço em branco inicial dos valores ao escrever. Aplica-se ao csv (DataFrameWriter). |
ignoreTrailingWhiteSpace |
false |
Se deve cortar o espaço em branco final dos valores ao escrever. Aplica-se ao csv (DataFrameWriter). |
lineSep |
\n |
A cadeia separadora de linhas usada entre discos. Aplica-se ao csv (DataFrameWriter). |
locale |
en-US |
Um java.util.Locale identificador. Influencia a formatação dos valores de data e hora ao escrever. |
nullValue |
Cadeia vazia | String escrita para valores nulos. Aplica-se ao csv (DataFrameWriter). |
quote |
" |
O carácter usado para citar os valores dos campos que contêm o separador. Aplica-se ao csv (DataFrameWriter). |
quoteAll |
false |
Se deve incluir todos os valores do campo entre aspas, independentemente do conteúdo. Aplica-se ao csv (DataFrameWriter). |
sep |
, |
O carácter delimitador de campo. Aplica-se ao csv (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
A string de formato para valores de colunas com carimbo temporal. Aplica-se ao csv (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Formatar uma string para carimbo temporal sem valores de coluna do fuso horário (TimestampNTZType). |
Excel
| Key | Predefinido | Description |
|---|---|---|
dataAddress |
None | O nome da folha ou célula inicial para a escrita. Se omitido, escreve numa folha nomeada Sheet1 começando na célula A1. Aceita um nome de folha ("SheetName") ou uma única referência de célula ("SheetName!A1"). Os intervalos de células não são suportados para escritas. |
dateFormatInWrite |
yyyy-mm-dd |
Excel cadeia de formato de célula aplicada às colunas Date. Utiliza a sintaxe do formato Excel. |
headerRows |
0 |
Se deve escrever os nomes das colunas como primeira linha. Valores válidos: 0, 1. |
timestampNTZFormat |
yyyy-mm-dd hh:mm:ss |
Excel cadeia de formato de célula aplicada às colunas TimestampNTZ e Timestamp. Utiliza a sintaxe do formato Excel. |
version |
xlsx |
A versão do formato de ficheiro Excel para escrever. Valores válidos: xlsx, xls. |
JSON
| Key | Predefinido | Description |
|---|---|---|
compression |
none |
Codec de compressão para usar na escrita. Valores válidos: none, bzip2, , gziplz4, snappy, deflate, zstd. Aplica-se a json (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Formatar uma string para valores de colunas de datas. Aplica-se a json (DataFrameWriter). |
encoding |
UTF-8 |
A codificação de caracteres para os ficheiros de saída. Aplica-se a json (DataFrameWriter). |
ignoreNullFields |
valor de spark.sql.jsonGenerator.ignoreNullFields |
Se deve omitir campos com valores nulos da saída JSON. Aplica-se a json (DataFrameWriter). |
lineSep |
\n |
A cadeia separadora de linhas usada entre discos. Aplica-se a json (DataFrameWriter). |
locale |
en-US |
Um java.util.Locale identificador. Influencia a formatação dos valores de data e hora ao escrever. |
pretty |
false |
Se deves ativar uma saída JSON bonita (indentada, multilinha). |
sortKeys |
false |
Se deve ordenar as chaves dos objetos JSON alfabeticamente na saída. Útil para produzir resultados determinísticos. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
A string de formato para valores de colunas com carimbo temporal. Aplica-se a json (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Formatar uma string para carimbo temporal sem valores de coluna do fuso horário (TimestampNTZType). |
writeNonAsciiCharacterAsCodePoint |
false |
Se deve codificar caracteres não ASCII como \uXXXX sequências de escape Unicode em vez de caracteres UTF-8 literais na saída. |
ORC
| Key | Predefinido | Description |
|---|---|---|
compression |
zstd |
Codec de compressão para usar na escrita. Valores válidos: none, uncompressed, snappy, zlib, lzo, zstd, lz4, , . brotli Aplica-se ao orc (DataFrameWriter). |
Parquet
| Key | Predefinido | Description |
|---|---|---|
compression |
snappy |
Codec de compressão para usar na escrita. Valores válidos: none, uncompressed, snappy, gzip, lzo, brotli, lz4, , lz4_raw, , . zstd Aplica-se ao parquet (DataFrameWriter). |
spark.sql.parquet.outputTimestampType |
INT96 |
O tipo físico usado para codificar colunas de carimbo temporal. Valores válidos: INT96, TIMESTAMP_MICROS, TIMESTAMP_MILLIS. Utilizar INT96 para compatibilidade com leitores Parquet antigos que não suportam os tipos padrão de carimbo temporal. |
Texto
| Key | Predefinido | Description |
|---|---|---|
compression |
none |
Codec de compressão para usar na escrita. Valores válidos: none, bzip2, , gziplz4, snappy, deflate, zstd. Aplica-se ao texto (DataFrameWriter). |
encoding |
UTF-8 |
A codificação de caracteres para os ficheiros de saída. |
lineSep |
\n |
A cadeia separadora de linhas usada entre discos. Aplica-se ao texto (DataFrameWriter). |
XML
| Key | Predefinido | Description |
|---|---|---|
arrayElementName |
item |
O nome do elemento para elementos de array que não têm nome explícito. Aplica-se a xml (DataFrameWriter). |
attributePrefix |
_ |
O prefixo precedia os nomes dos campos que correspondem a atributos XML. Aplica-se a xml (DataFrameWriter). |
compression |
none |
Codec de compressão para usar na escrita. Valores válidos: none, bzip2, , gziplz4, snappy, deflate, zstd. Aplica-se a xml (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Formatar uma string para valores de colunas de datas. Aplica-se a xml (DataFrameWriter). |
declaration |
version="1.0" encoding="UTF-8" standalone="yes" |
A cadeia de declaração XML escrita no topo de cada ficheiro de saída. Definido para uma cadeia vazia para suprimir a declaração. Aplica-se a xml (DataFrameWriter). |
encoding |
UTF-8 |
A codificação de caracteres para os ficheiros de saída. Aplica-se a xml (DataFrameWriter). |
indent |
4 espaços | A cadeia usada para indentar elementos filhos na saída. Defina para uma string vazia para desligar a indentação e escreva cada linha numa única linha. |
locale |
en-US |
Um java.util.Locale identificador. Influencia a formatação dos valores de data e hora ao escrever. |
nullValue |
null |
A cadeia escrita para valores nulos. Quando definido para null, os atributos e elementos filhos para campos nulos são omitidos. Aplica-se a xml (DataFrameWriter). |
rootTag |
ROWS |
A etiqueta de elemento raiz que envolve todos os elementos da linha na saída. Aplica-se a xml (DataFrameWriter). |
rowTag |
ROW |
A etiqueta de elemento que representa uma linha na saída. Aplica-se a xml (DataFrameWriter). |
singleVariantColumn |
None | O nome da única coluna Variante para escrever em ficheiros XML. Aplica-se a xml (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
A string de formato para valores de colunas com carimbo temporal. Aplica-se a xml (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Formate uma string para carimbo temporal sem valores de colunas de fuso horário. Aplica-se a xml (DataFrameWriter). |
validateName |
true |
Se deve lançar uma exceção se o nome de uma coluna não for um identificador válido de elemento XML. Aplica-se a xml (DataFrameWriter). |
valueTag |
_VALUE |
O nome do campo é usado para dados de caracteres em elementos XML que também possuem atributos ou elementos filhos. Aplica-se a xml (DataFrameWriter). |
Opções DataStreamWriter
Use estas opções para DataStreamWriter.option() configurar escritas em streaming.
Example
O exemplo seguinte define a localização do ponto de controlo para um fluxo:
Python
(df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table"))
Scala
df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table")
Comum
| Key | Predefinido | Description |
|---|---|---|
checkpointLocation |
Nenhum (obrigatório) | Caminho para o diretório de checkpoint para a consulta de streaming. Exigido para garantir tolerância a falhas e processamento exatamente uma vez. Cada consulta de streaming deve usar uma localização única de ponto de controlo. O Databricks recomenda armazenar pontos de verificação num volume do Unity Catalog ou num caminho de armazenamento na nuvem. Consulte Pontos de verificação de streaming estruturado. |
path |
None | Caminho de saída para sinks de streaming baseados em ficheiros, como o Parquet. Aplica-se apenas a formatos baseados em ficheiros. |
Lava-solas
| Key | Predefinido | Description |
|---|---|---|
numRows |
20 |
O número de linhas a mostrar para cada micro-lote ao escrever no sink da consola. |
truncate |
true |
Se devo truncar cadeias longas ao mostrar linhas. Defina para false mostrar os valores completos da cadeia. |
Lago Delta
As seguintes opções aplicam-se ao escrever um fluxo para uma tabela de Delta Lake usando format("delta"). Opções apenas de sobrescrever, como overwriteSchema, replaceWhere, e partitionOverwriteMode não são suportadas para escritas em streaming.
| Key | Predefinido | Description |
|---|---|---|
mergeSchema |
false |
Se deve evoluir o esquema da tabela Delta Lake quando o DataFrame em streaming contém novas colunas. Aplica-se apenas ao modo de saída anexada. Aplica-se ao esquema da tabela de atualização. |
userMetadata |
None | Uma cadeia definida pelo utilizador anexada aos metadados de commit para a operação de escrita. Visível na saída de DESCRIBE HISTORY. Aplica-se a tabelas Enrich com metadados personalizados. |
Sumidouro de ficheiros
A seguinte opção aplica-se ao escrever um fluxo para formatos baseados em ficheiros (Parquet, JSON, CSV, ORC, texto). Para opções específicas de formato, consulte opções DataFrameWriter.
| Key | Predefinido | Description |
|---|---|---|
retention |
None | Quanto tempo manter os ficheiros de metadados do sink usados para tolerância a falhas e compactação. Aceita uma cadeia temporal como 7 days ou 24 hours. Quando não está definido, os ficheiros de metadados são mantidos indefinidamente. |
Afundamento de Kafka
Para uma lista completa de opções para escrever streams para Kafka, veja Opções.
| Key | Predefinido | Description |
|---|---|---|
kafka.bootstrap.servers |
None | Required. Uma lista separada por vírgulas de endereços de corretores host:port Kafka. |
topic |
None | O tema alvo de Kafka para todas as linhas. Obrigatório se o DataFrame não incluir uma topic coluna. |
kafka.* |
None | Qualquer configuração de produtor Kafka com prefixo de kafka.. Por exemplo, kafka.compression.type. |
Sumidouro de memória
| Key | Predefinido | Description |
|---|---|---|
queryName |
Nenhum (obrigatório) | O nome da tabela em memória onde a consulta escreve. Necessária para o sumidouro de memória. Também configurável via .queryName(). |
mode |
exactlyonce |
Garantia de entrega para o sumidouro de memória.
exactlyonce Usa o modo micro-batch com semântica de uma vez exata.
atleastonce usa modo contínuo com pelo menos uma semântica. Valores válidos: exactlyonce, atleastonce. |
Opções de função de faísca
Algumas funções integradas no SQL do Spark aceitam um options mapa que controla o comportamento de análise ou serialização. Passa opções como Python dict ou Scala Map[String, String].
Example
O exemplo seguinte analisa uma coluna JSON ao eliminar registos malformados:
Python
from pyspark.sql.functions import from_json
from pyspark.sql.types import StructType, StructField, StringType
schema = StructType([StructField("name", StringType())])
df = df.withColumn("parsed", from_json("json_col", schema, {"mode": "DROPMALFORMED"}))
Scala
import org.apache.spark.sql.functions.from_json
import org.apache.spark.sql.types._
val schema = StructType(Seq(StructField("name", StringType)))
val df = df.withColumn("parsed", from_json(col("json_col"), schema, Map("mode" -> "DROPMALFORMED")))
Avro
As funções Avro aceitam as mesmas opções que as opções DataFrame correspondentes:
-
from_avroeschema_of_avroutilizar as opções Avro do DataFrameReader. -
to_avroutiliza as opções Avro do DataFrameWriter.
Example
O exemplo seguinte decodifica uma coluna Avro com a evolução do esquema ativada:
Python
from pyspark.sql.functions import from_avro
df = df.withColumn("decoded", from_avro("avro_col", json_schema, {"avroSchemaEvolutionMode": "restart"}))
Scala
import org.apache.spark.sql.avro.functions.from_avro
val df = df.withColumn("decoded", from_avro(col("avro_col"), jsonSchema, Map("avroSchemaEvolutionMode" -> "restart")))
Além disso, as variantes do Registo de Esquemas de from_avro e to_avro aceitam as seguintes opções:
| Key | Predefinido | Description |
|---|---|---|
schemaId |
None | ID de esquema do Confluent Schema Registry para usar ao decodificar dados Avro codificados com um esquema incompatível com jsonFormatSchema. Aplica-se apenas a from_avro . |
confluent.schema.registry.* |
None | Propriedades de configuração do cliente do Registo de Esquema Confluente. Passe qualquer propriedade cliente Confluent SR usando este prefixo, por exemplo confluent.schema.registry.basic.auth.user.info , para credenciais básicas de autenticação. Necessária para as variantes do Registo de Esquemas de from_avro e to_avro. |
CSV
As funções CSV aceitam as mesmas opções que as opções DataFrame correspondentes:
-
from_csveschema_of_csvutilizar opções CSV DataFrameReader. -
to_csvutiliza opções CSV do DataFrameWriter.
Example
O exemplo seguinte lê-se CSV com um separador e NULL valor personalizados:
Python
from pyspark.sql.functions import from_csv
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
schema = StructType([StructField("id", IntegerType()), StructField("name", StringType())])
df = df.withColumn("parsed", from_csv("csv_col", schema, {"sep": "|", "nullValue": "N/A"}))
Scala
import org.apache.spark.sql.functions.from_csv
import org.apache.spark.sql.types._
val schema = StructType(Seq(StructField("id", IntegerType), StructField("name", StringType)))
val df = df.withColumn("parsed", from_csv(col("csv_col"), schema, Map("sep" -> "|", "nullValue" -> "N/A")))
JSON
As funções JSON aceitam as mesmas opções que as opções correspondentes de DataFrame:
-
from_jsoneschema_of_jsonutilizar opções JSON do DataFrameReader. -
to_jsonutiliza opções JSON do DataFrameWriter.
Example
O exemplo seguinte escreve JSON com NULL campos ignorados e formatação bonita ativada:
Python
from pyspark.sql.functions import to_json
df = df.withColumn("json_str", to_json("struct_col", {"pretty": "true", "ignoreNullFields": "true"}))
Scala
import org.apache.spark.sql.functions.to_json
val df = df.withColumn("json_str", to_json(col("struct_col"), Map("pretty" -> "true", "ignoreNullFields" -> "true")))
Protobuf
from_protobuf e to_protobuf não utilize uma fonte de dados baseada em ficheiros. Os dados protobuf são sempre lidos e escritos como colunas binárias usando estas funções. As opções são aprovadas como a Map[String, String] e são sensíveis a maiúsculas e minúsculas.
Example
O exemplo seguinte decodifica uma coluna Protobuf usando o modo PERMISSIVO:
Python
from pyspark.sql.functions import from_protobuf
df = df.withColumn("decoded", from_protobuf("proto_col", "MyMessage", "/path/to/descriptor.desc",
{"mode": "PERMISSIVE", "enums.as.ints": "true"}))
Scala
import org.apache.spark.sql.protobuf.functions.from_protobuf
val df = df.withColumn("decoded", from_protobuf(col("proto_col"), "MyMessage", "/path/to/descriptor.desc",
Map("mode" -> "PERMISSIVE", "enums.as.ints" -> "true")))
As funções protobuf utilizam as seguintes opções:
| Key | Predefinido | Description |
|---|---|---|
mode |
FAILFAST |
Como lidar com registos corrompidos.
FAILFAST inicia uma exceção.
PERMISSIVE define campos malformados como nulo. Valores válidos: FAILFAST, PERMISSIVE. Aplica-se a from_protobuf. |
recursive.fields.max.depth |
-1 (deficiente) |
Profundidade máxima de recursão para campos de Protobuf recursivos. Defina para 0 desligar o suporte a campos recursivos. Valores válidos: 0 para 10. Aplica-se a from_protobuf. |
convert.any.fields.to.json |
false |
Se converter campos Protobuf Any numa cadeia JSON em vez de um STRUCT. Aplica-se a from_protobuf. |
emit.default.values |
false |
Se deve emitir campos com valores zero ou padrão (semântica proto3). Quando false, campos com valores predefinidos são omitidos da saída. Aplica-se a from_protobuf. |
enums.as.ints |
false |
Se deve renderizar os campos enum como valores inteiros em vez de cadeias. Aplica-se a from_protobuf. |
upcast.unsigned.ints |
false |
Se deve fazer upcasting uint32 para Long e uint64 para Decimal(20,0) evitar o desbordamento de inteiros. Aplica-se a from_protobuf. |
unwrap.primitive.wrapper.types |
false |
Se deve desembrulhar google.protobuf os tipos de wrapper (por exemplo, Int32Value e StringValue) para os respetivos tipos primitivos de Spark. Aplica-se a from_protobuf. |
retain.empty.message.types |
false |
Se deve manter os tipos de mensagens Protobuf vazios no esquema de saída inserindo uma coluna fictícia. Aplica-se a from_protobuf. |
schema.registry.subject |
None | Nome do assunto do Registo de Esquemas. Obrigatório ao utilizar as variantes do Registo de Esquemas de from_protobuf e to_protobuf. |
schema.registry.address |
None | Endereço do Registo de Esquema (host e porta). Obrigatório ao utilizar as variantes do Registo de Esquemas de from_protobuf e to_protobuf. |
schema.registry.protobuf.name |
None | Especifica qual mensagem Protobuf usar quando o assunto do registo de esquema contém múltiplas mensagens. Optional. |
XML
As funções XML aceitam as mesmas opções que as opções DataFrame correspondentes:
-
from_xmleschema_of_xmlutilizar as opções XML do DataFrameReader. -
to_xmlutiliza as opções XML do DataFrameWriter.
Example
O exemplo seguinte escreve XML com etiquetas raiz e linhas personalizadas:
Python
from pyspark.sql.functions import to_xml
df = df.withColumn("xml_str", to_xml("struct_col", {"rootTag": "records", "rowTag": "record"}))
Scala
import org.apache.spark.sql.functions.to_xml
val df = df.withColumn("xml_str", to_xml(col("struct_col"), Map("rootTag" -> "records", "rowTag" -> "record")))