Referência de opções de API do Spark

Esta página lista as opções de entrada e saída disponíveis para APIs do Spark que leem e gravam dados.

Opções do DataFrameReader

Use essas opções com DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO e Auto Loader para controlar como Azure Databricks lê arquivos de dados.

Example

O exemplo a seguir define multiLine para ler True arquivos 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.

Chave Default Description
ignoreCorruptFiles false Se os arquivos corrompidos devem ser ignorados. Se for verdade, os trabalhos do Spark continuarão a ser executados ao encontrar arquivos corrompidos e o conteúdo lido ainda será retornado. Pois COPY INTO, você pode observar arquivos corrompidos ignorados como numSkippedCorruptFiles na operationMetrics coluna do histórico do Delta Lake. Disponível no Databricks Runtime 11.3 LTS e versões superiores.
ignoreMissingFiles false para Carregador Automático, true para COPY INTO (herdado) Se deve ignorar arquivos ausentes. Se for true, os trabalhos do Spark continuarão a ser executados ao encontrar arquivos ausentes e o conteúdo ainda será retornado. Disponível no Databricks Runtime 11.3 LTS e versões superiores.
modifiedAfter None Um timestamp opcional como filtro para importar apenas arquivos que têm um timestamp de modificação após o timestamp fornecido.
modifiedBefore None Um timestamp opcional como filtro para importar apenas arquivos que tenham um timestamp de modificação anterior ao timestamp fornecido.
pathGlobFilter ou fileNamePattern None Um padrão glob em potencial a ser fornecido para escolher arquivos. Equivalente a PATTERN em COPY INTO (herdado). fileNamePattern pode ser usado em read_files.
recursiveFileLookup false Quando true, essa opção pesquisa por diretórios aninhados mesmo que seus nomes não sigam um esquema de nomenclatura de partição como date=2019-07-01.

Avro

Chave Default Description
avroSchema None Esquema opcional fornecido por um usuário no formato Avro. Ao ler o Avro, essa opção pode ser definida como um esquema evoluído compatível, mas diferente do esquema Avro real. O esquema de desserialização é consistente com o esquema evoluído. Por exemplo, se você definir um esquema evoluído contendo uma coluna adicional com um valor padrão, o resultado da leitura também conterá a nova coluna.
avroSchemaEvolutionMode none Como lidar com a evolução do esquema ao usar um registro de esquema. Valores válidos: none (ignore as alterações de esquema e continue o trabalho), restart (quando as alterações de esquema são detectadas, gera um UnknownFieldException e requer uma reinicialização do trabalho).
datetimeRebaseMode LEGACY Controla a nova base dos valores DATE e TIMESTAMP entre calendários Juliano e Gregoriano Proléptico. Valores válidos: EXCEPTION, LEGACY e CORRECTED.
enableStableIdentifiersForUnionType false Se deve usar nomes de campo estáveis para tipos de União do Avro. Quando habilitados, os nomes de campo de tipo de união são derivados de seus nomes de tipo em letras minúsculas (por exemplo, member_int, ). member_string Gera uma exceção se dois nomes de tipo forem idênticos após a letra minúscula.
mergeSchema false Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. mergeSchema para Avro não flexibilizar tipos de dados.
mode FAILFAST Modo analisador para lidar com registros corrompidos. Valores válidos: FAILFAST (gera uma exceção), PERMISSIVE (define campos malformados como nulos) DROPMALFORMED (descarta silenciosamente registros inválidos).
readerCaseSensitive true Especifica o comportamento de confidencialidade de caso quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas.
recursiveFieldMaxDepth None A profundidade máxima de recursão para campos Avro recursivos. Defina para 1 truncar todos os campos recursivos, 2 para permitir um nível de recursão e assim por diante até 15. Quando campos não definidos ou 0recursivos não são permitidos. Valores válidos: 0 para 15.
rescuedDataColumn None Se é necessário coletar todos os dados que não podem ser analisados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas de coluna) a uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático.
COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão.
Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?.
stableIdentifierPrefixForUnionType member_ O prefixo a ser usado para nomes de campo de tipo de união estável quando enableStableIdentifiersForUnionType=true.

CSV

Chave Default Description
badRecordsPath None O caminho para armazenar arquivos para registrar as informações sobre registros CSV incorretos.
charToEscapeQuoteEscaping \0 O caractere usado para escapar do caractere usado para escapar aspas. Por exemplo, para o seguinte registro: [ " a\\", b ]:
  • Se o caractere para escapar o '\' estiver indefinido, o registro não será analisado. O analisador lerá os caracteres: [a],[\],["],[,],[ ],[b] e lançará um erro porque não consegue encontrar as aspas finais.
  • Se o caractere de escape para '\' for definido como '\', o registro será lido com dois valores: [a\] e [b].
columnNameOfCorruptRecord _corrupt_record Com suporte para Carregador Automático. Não há suporte para COPY INTO (herdado).
A coluna para armazenar registros malformados e que não podem ser analisados. Se mode para análise for definida como DROPMALFORMED, essa coluna ficará 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 desabilitar o ato de ignorar 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 você deve voltar à data herdada e ao comportamento de análise de carimbo de data/hora quando um valor não pode ser analisado com o formato especificado. Quando false, as falhas de análise geram um erro ou produzem nulo dependendo modede .
encoding ou charset UTF-8 O nome da codificação dos arquivos CSV. Confira java.nio.charset.Charset para obter a lista de opções. UTF-16 e UTF-32 não podem ser usados quando multiline é true.
enforceSchema true Se deve aplicar à força o esquema especificado ou inferido aos arquivos CSV. Se a opção estiver habilitada, os cabeçalhos de arquivos CSV serão ignorados. Essa opção será ignorada por padrão ao usar o Carregador Automático 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 de nome de arquivo esperada. Os arquivos sem essa extensão são filtrados durante as leituras.
failOnUnknownFields false Se deve falhar quando o registro CSV contiver colunas não presentes no esquema. Quando false, colunas não reconhecidas são silenciosamente descartadas ou resgatadas dependendo rescuedDataColumnde .
failOnWidenedFields false Se um valor de campo não pode ser analisado como o tipo de esquema declarado sem a ampliação. Quando false, valores ampliados por tipo são silenciosamente resgatados dependendo rescuedDataColumnde . A configuração failOnUnknownFields=true pode mascarar os efeitos dessa opção.
header false Se os arquivos CSV contiverem um cabeçalho. O Carregador Automático presume que os arquivos tenham cabeçalhos ao inferir o esquema.
ignoreLeadingWhiteSpace false Se deve ignorar espaços em branco iniciais para cada valor analisado.
ignoreTrailingWhiteSpace false Se os espaços em branco no final de cada valor analisado devem ser ignorados.
inferSchema false Se inferir os tipos de dados dos registros CSV analisados ou assumir que todas as colunas são de StringType. Requer uma passagem adicional dos dados se definido como true. Para o Carregador Automático, use cloudFiles.inferColumnTypes em vez disso.
inputBufferSize 1048576 (1 MB) O tamanho do buffer em bytes para o analisador CSV. Útil para ajustar o uso de memória ao analisar arquivos CSV grandes. Valores válidos: inteiros positivos.
lineSep Nenhum, que abrange \r, \r\ne \n Uma cadeia de caracteres entre dois registros CSV consecutivos.
locale US Um identificador java.util.Locale. Influencia a data padrão, o carimbo de data/hora e a análise decimal 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. O padrão é -1, que significa ilimitado. Valores válidos: inteiros positivos ou -1 ilimitados.
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. Habilitado por padrão para o Carregador Automático ao inferir o esquema.
mode PERMISSIVE Modo analisador em torno do tratamento de registros malformados. Valores válidos: PERMISSIVE, , DROPMALFORMEDFAILFAST.
multiLine false Se os registros CSV abrangem várias linhas.
nanValue NaN A representação de cadeia de caracteres de um valor que não é um número ao analisar as colunas FloatType e DoubleType.
negativeInf -Inf A representação da cadeia de caracteres de infinito negativo ao analisar 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, se as colunas declaradas no cabeçalho devem ser alinhadas com o caso de esquema de forma sensível. Isso é true por padrão para o Auto Loader. As colunas que diferirem por caso serão resgatadas no rescuedDataColumn, se habilitado. Essa opção foi preterida em favor de readerCaseSensitive.
positiveInf Inf A representação da cadeia de caracteres de infinito positivo ao analisar as colunas FloatType ou DoubleType.
preferDate true Tenta inferir cadeias de caracteres como datas em vez de carimbo de data/hora quando possível. Você também deve usar a inferência de esquema, habilitando inferSchema ou usando cloudFiles.inferColumnTypes com o Carregador Automático.
quote " O caractere usado para escapar valores em que o delimitador de campo faz parte do valor.
readerCaseSensitive true Especifica o comportamento de confidencialidade de caso quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas.
rescuedDataColumn None Se é necessário coletar todos os dados que não podem ser analisados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas de coluna) a uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático. Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?.
COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão.
sep ou delimiter , A cadeia de caracteres do separador entre colunas.
singleVariantColumn None Quando definido como um nome de coluna, lê todo o registro CSV em uma única VariantType coluna com esse nome em vez de analisar cada campo em sua própria coluna. Requer header=true.
skipRows 0 O número de linhas desde o início do arquivo CSV que devem ser ignoradas (incluindo linhas com comentários e vazias). Se header for verdadeiro, o cabeçalho será a primeira linha não pulada e não comentada. Valores válidos: inteiros positivos ou 0.
timeFormat HH:mm:ss O formato para analisar valores de TimeType coluna.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] O formato para análise de cadeias de caracteres de data/hora.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] O formato para analisar o carimbo de data/hora sem cadeias de caracteres de fuso horário (TimestampNTZType).
timeZone None O java.time.ZoneId a ser usado ao analisar carimbo de data/hora e datas.
unescapedQuoteHandling STOP_AT_DELIMITER A estratégia para lidar com aspas sem escape. Opções permitidas:
  • STOP_AT_CLOSING_QUOTE: se forem encontradas aspas sem escape na entrada, acumule o caractere de aspa e continue analisando o valor como um valor entre aspas, até que uma aspa de fechamento seja encontrada.
  • BACK_TO_DELIMITER: se forem encontradas aspas sem escape na entrada, considere o valor como um valor sem aspas. Isso fará com que o analisador acumule todos os caracteres do valor atual analisado até que o delimitador definido por sep seja encontrado. Se nenhum delimitador for encontrado no valor, o analisador continuará acumulando caracteres da entrada até que um delimitador ou uma terminação de linha seja encontrada.
  • STOP_AT_DELIMITER: se forem encontradas aspas sem escape na entrada, considere o valor como um valor sem aspas. Isso fará com que o analisador acumule todos os caracteres até que o delimitador definido por sep ou uma terminação de linha seja encontrado na entrada.
  • SKIP_VALUE: se as aspas não localizadas forem encontradas na entrada, o conteúdo analisado para o valor fornecido será ignorado (até que o próximo delimitador seja encontrado) e o valor definido em nullValue será produzido.
  • RAISE_ERROR: se aspas não localizadas forem encontradas na entrada, uma TextParsingException será lançada.

Excel

Chave Default Description
dataAddress None O intervalo de células a ser lido em Excel sintaxe. Se omitido, lê todas as células válidas da primeira planilha. Use "SheetName!C5:H10" para ler um intervalo de uma planilha nomeada, "C5:H10" ler um intervalo da primeira planilha ou "SheetName" ler todos os dados de uma planilha específica.
headerRows 0 Número de linhas iniciais a serem usadas como cabeçalhos de nome de coluna. Quando dataAddress é especificado, isso se aplica dentro do intervalo de células. Quando 0, os nomes de coluna são gerados automaticamente como _c1, , _c2etc _c3. Valores válidos: 0, 1.
ignoreMissingSheet false Se deve ignorar silenciosamente os arquivos que não contêm a planilha especificada por dataAddress. Quando false, um erro é gerado se um arquivo está faltando na planilha solicitada. Aplica-se somente quando um nome de planilha é especificado em dataAddress. Valores válidos: true, false.
includePhoneticRuns false Se deve incluir anotações fonéticas (como pinyina ou furigana) concatenadas aos valores de cadeia de caracteres de célula ao ler arquivos XLSX. Valores válidos: true, false.
operation readSheet A operação a ser executada na pasta de trabalho Excel. Valores válidos: readSheet (lê dados de uma planilha) listSheets (retorna um struct com campos sheetIndex: long e sheetName: String para cada planilha).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadeia de caracteres de formato personalizado para valores de carimbo de data/hora sem fuso horário armazenados como cadeias de caracteres em Excel. Os formatos de data personalizados seguem os formatos dos padrões de datetime.
dateFormat yyyy-MM-dd Cadeia de caracteres de formato personalizado para valores de cadeia de caracteres lidos como Date. Os formatos de data personalizados seguem os formatos dos padrões de datetime.

JSON

Chave Default Description
allowBackslashEscapingAnyCharacter false Se as barras invertidas devem ser permitidas para escapar qualquer caractere que tenha sucesso. Se não estiver habilitado, somente os caracteres listados explicitamente pela especificação JSON poderão ser escapados.
allowComments false Se deseja permitir o uso de comentários de estilo Java, C e C++ (variedades '/', '*' e '//') no conteúdo analisado ou não.
allowNonNumericNumbers true Se o conjunto de tokens não-numéricos (NaN) deve ser permitido como valores de números flutuantes legais.
allowNumericLeadingZeros false Indica se os números integrais podem ser iniciados com zeros adicionais (ignoráveis) (por exemplo, 000001).
allowSingleQuotes true Se o uso de aspas simples (apóstrofo, caractere '\') deve ser permitido para cadeias de caracteres de citação (nomes e valores de cadeia de caracteres).
allowUnquotedControlChars false Se as cadeias de caracteres JSON devem ou não ser permitidas para conter caracteres de controle sem escape (caracteres ASCII com valor inferior a 32, incluindo caracteres de tabulação e de alimentação de linha).
allowUnquotedFieldNames false Se deseja permitir o uso de nomes de campo não citados, que são permitidos pelo JavaScript, mas não pela especificação JSON.
alternateVariantEncoding None A codificação usada para valores Variant no JSON de origem. Defina para Z85 decodificar valores Variant que foram codificados em Base85 em vez de armazenados como JSON embutido.
badRecordsPath None O caminho para armazenar arquivos para registrar as informações sobre registros JSON inválidos.
Usar a opção badRecordsPath em uma fonte de dados baseada em arquivo tem as seguintes limitações:
  • Ele não é transacional e pode levar a resultados inconsistentes.
  • Erros transitórios são tratados como falhas.
columnNameOfCorruptRecord _corrupt_record A coluna para armazenar registros malformados e que não podem ser analisados. Se mode para análise for definida como DROPMALFORMED, essa coluna ficará 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 de esquema.
encoding ou charset UTF-8 O nome da codificação dos arquivos JSON. Confira java.nio.charset.Charset para obter uma lista de opções. Você não pode usar UTF-16 e UTF-32 quando multiline é true.
inferTimestamp false Se deseja tentar e inferir as cadeias de carimbo de data/hora como um TimestampType. Quando definido como , a trueinferência de esquema pode levar visivelmente mais tempo. Você deve habilitar cloudFiles.inferColumnTypes para uso com o Carregador Automático.
lineSep Nenhum, que abrange \r, \r\ne \n Uma cadeia de caracteres entre dois registros JSON consecutivos.
locale US Um identificador java.util.Locale. Influencia o formato padrão de data, timestamp e interpretação decimal no JSON.
maxNestingDepth 500 A profundidade de aninhamento máxima permitida para objetos JSON e matrizes. Aumente esse valor para documentos profundamente aninhados. Valores válidos: inteiros positivos.
maxNumLen 1000 O comprimento máximo dos tokens numéricos na entrada JSON. Aumente esse valor para JSON com literais numéricos grandes. Valores válidos: inteiros positivos.
maxStringLen ilimitado O comprimento máximo dos valores de cadeia de caracteres na entrada JSON. Defina para limitar o uso de memória ao analisar JSON com cadeias de caracteres grandes. Valores válidos: inteiros positivos.
mode PERMISSIVE Modo analisador em torno do tratamento de registros malformados. Valores válidos: PERMISSIVE, , DROPMALFORMEDFAILFAST.
multiLine false Se os registros JSON devem se estender por várias linhas.
prefersDecimal false Tenta inferir cadeias de caracteres como DecimalType em vez de flutuar ou tipo duplo quando possível. Você também deve usar a inferência de esquema, habilitando inferSchema ou usando cloudFiles.inferColumnTypes com o Carregador Automático.
primitivesAsString false Se deve inferir tipos primitivos como números e boolianos como StringType.
readerCaseSensitive true Especifica o comportamento de confidencialidade de caso quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas. Disponível no Databricks Runtime 13.3 e superior.
rescuedDataColumn None Se é necessário coletar todos os dados que não podem ser analisados devido a uma incompatibilidade de tipo de dados ou incompatibilidade de esquema (incluindo maiúsculas de coluna) para uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático. Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?.
COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão.
singleVariantColumn None Se deve ingerir todo o documento JSON, analisado em uma única coluna Variant com a cadeia de caracteres especificada como o nome da coluna. Se não for definido, os campos JSON serão ingeridos em suas próprias colunas. Valores válidos: qualquer cadeia de caracteres.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] O formato para análise de cadeias de caracteres de data/hora.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] O formato para analisar o carimbo de data/hora sem cadeias de caracteres de fuso horário (TimestampNTZType).
timeZone None O java.time.ZoneId a ser usado ao analisar carimbo de data/hora e datas.
upgradeExceptionAsBadRecord false Se deve tratar exceções de atualização de tipo (por exemplo, quando um valor não pode ser ampliado para o tipo de coluna declarado) como registros inválidos em vez de gerar uma exceção.

Kafka

Para obter a lista completa de opções de leitor do Kafka, consulte as opções do Kafka do DataStreamReader. As opções a seguir se aplicam somente às leituras em lote usando spark.read.format("kafka").

Chave Default Description
endingOffsets latest Onde parar de ler. Valores válidos: latestou uma cadeia de caracteres JSON de deslocamentos para cada partição, como {"topicA":{"0":50,"1":-1}}.
Na cadeia de caracteres JSON, -1 é o deslocamento mais recente. -2, que é o deslocamento mais antigo, não é permitido como um deslocamento final.
endingOffsetsByTimestamp None Deslocamentos finais por partição especificados como carimbos de data/hora em milissegundos. Valores válidos: uma cadeia de caracteres JSON de carimbos de data/hora para cada partição, como {"topicA":{"0":2000,"1":3000}}.
endingTimestamp None Carimbo de data/hora final global em milissegundos aplicado a todas as partições. Valores válidos: inteiros não negativos.

ORC

Chave Default Description
mergeSchema false Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo.

Parquet

Chave Default Description
datetimeRebaseMode LEGACY Controla a nova base dos valores DATE e TIMESTAMP entre calendários Juliano e Gregoriano Proléptico. Valores válidos: EXCEPTION, LEGACY e CORRECTED.
int96RebaseMode LEGACY Controla a nova base dos valores de carimbo de data/hora INT96 entre 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 confidencialidade de caso quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas.
rescuedDataColumn None Se é necessário coletar todos os dados que não podem ser analisados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas de coluna) a uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático. Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?.
COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão.

Repositório de estado

Use essas opções com spark.read.format("statestore") ou a read_statestore função com valor de tabela para ler dados de estado de Streaming Estruturado. Consulte a seção Ler informações de estado do Streaming Estruturado.

Chave Default Description
batchId ID do lote mais recente O lote de destino do qual ler. Use para consultar um estado anterior da consulta. O lote precisa ser confirmado, mas ainda não foi limpo. Valores válidos: inteiros não negativos.
operatorId 0 O operador de destino do qual ler. Use quando a consulta tiver vários operadores com estado. Valores válidos: inteiros não negativos.
storeName DEFAULT O nome do repositório de estado de destino do qual ler. Use quando o operador com estado tiver várias instâncias do repositório de estado. Você deve especificar uma storeName junção de fluxo de fluxo ou joinSide de fluxo, mas não ambas. Valores válidos: qualquer cadeia de caracteres.
joinSide None O lado de destino do qual ler para uma junção de fluxo de fluxo. Você deve especificar uma storeName junção de fluxo de fluxo ou joinSide de fluxo, mas não ambas. Valores válidos: left, right.
snapshotStartBatchId None A ID do lote do instantâneo a ser usado como ponto de partida ao ler o estado. O leitor recria o estado reproduzindo as alterações desse instantâneo até batchId. Útil quando um instantâneo está corrompido. Deve especificar junto com snapshotPartitionId. Não é possível usar com readChangeFeed. Dá suporte ao repositório de estado com suporte do HDFS e ao repositório de estado do RocksDB com o ponto de verificação de caixa de alteração habilitado. Disponível no Databricks Runtime 15.4 LTS e superior. Valores válidos: inteiros não negativos.
snapshotPartitionId None Se especificado, a consulta lerá apenas essa partição. Deve especificar junto com snapshotStartBatchId. Não é possível usar com readChangeFeed. Disponível no Databricks Runtime 15.4 LTS e superior. Valores válidos: inteiros não negativos.
readChangeFeed false Quando true, retorna alterações de estado em um intervalo especificado de lotes entre changeStartBatchId e changeEndBatchId. Requer changeStartBatchId. Não é possível usar com joinSide, batchId, snapshotStartBatchIdou snapshotPartitionId. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: true, false.
Para obter detalhes, consulte Ler alterações de estado de Streaming Estruturado.
changeStartBatchId None A ID do lote inicial para o intervalo de feed de alterações. Necessário quando readChangeFeed é true. Aplica-se somente quando readChangeFeed é definido como true. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: inteiros não negativos.
changeEndBatchId ID do lote mais recente A ID do lote final para o intervalo de feed de alterações. Deve ser maior ou igual a changeStartBatchId. Aplica-se somente quando readChangeFeed é definido como true. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: inteiros não negativos.
stateVarName None O nome da variável de estado a ser lido. O nome da variável de estado é o nome exclusivo de cada variável dentro da init função de um StatefulProcessor usado pelo transformWithState operador. Necessário ao usar o transformWithState operador. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: qualquer cadeia de caracteres.
readRegisteredTimers false Quando true, lê os temporizadores registrados usados pelo transformWithState operador. Aplica-se apenas ao transformWithState operador. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: true, false.
flattenCollectionTypes true Quando true, nivela os registros retornados para variáveis de estado de mapa e lista. Quando false, retorna registros como um SQL Array do Spark ou Map. Aplica-se apenas ao transformWithState operador. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: true, false.

Texto

Chave Default Description
encoding UTF-8 O nome da codificação do separador de linha do arquivo de texto. Para obter uma lista de opções, consulte java.nio.charset.Charset. O conteúdo do arquivo não é afetado por essa opção e é lido as-is.
lineSep Nenhum, que abrange \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

Chave Default Description
rowTag None A marca de linha de arquivos XML a ser tratada como uma linha. No exemplo o XML <books> <book><book>...<books>, o valor apropriado é book. Trata-se de uma opção obrigatória.
samplingRatio 1.0 Define uma fração de linhas usadas para inferência de esquema. As funções internas do XML ignoram essa opção. Valores válidos: 0.0 para 1.0.
excludeAttribute false Se deve excluir os atributos 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 os campos malformados como null. Para manter os registros corrompidos, é possível definir um campo do tipo string denominado 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 campo columnNameOfCorruptRecord em um esquema de saída. DROPMALFORMED: ignora os registros corrompidos. Esse modo não dá suporte para funções internas de XML. FAILFAST: gera uma exceção quando o analisador encontra registros corrompidos.
inferSchema true Se true, tenta inferir um tipo apropriado para cada coluna DataFrame resultante. Se false, todas as colunas resultantes serão do tipo string. As funções internas do XML ignoram essa opção.
columnNameOfCorruptRecord spark.sql.columnNameOfCorruptRecord Permite renomear o novo campo que contém uma cadeia de caracteres malformada criada por PERMISSIVE modo.
attributePrefix None O prefixo de atributos para diferenciar atributos de elementos. Esse será o prefixo para nomes de campo. O padrão é _. Pode estar vazio para leitura de XML, mas não para gravação. Também se aplica às opções XML do DataFrameWriter.
valueTag _VALUE A marca usada para os dados de caracteres dentro de elementos que também têm elementos de atributo(s) ou elemento(s) filho(s). O usuário pode especificar o campo valueTag 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, decodifique os arquivos XML de acordo com o tipo de codificação fornecido. Para gravação, especifique a codificação (conjunto de caracteres) dos arquivos XML salvos. As funções internas do XML ignoram essa opção. Também se aplica às opções XML do DataFrameWriter.
ignoreSurroundingSpaces true Se os espaços em branco ao redor devem ser ignorados. Os dados de caracteres somente com espaços em branco são ignorados.
rowValidationXSDPath None Caminho para um arquivo XSD opcional usado para validar o XML de cada linha individualmente. As linhas que não são validadas são tratadas como erros de análise. O XSD não afeta de outra forma o esquema, seja fornecido ou inferido.
ignoreNamespace false Se true, os prefixos dos namespaces em elementos XML e atributos serão ignorados. As marcas <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, somente em seus filhos de leitura. A análise de XML não tem reconhecimento de namespace, mesmo se false.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Cadeia de caracteres do formato de carimbo de data/hora personalizado que segue o formato padrão data/hora. Isso se aplica ao tipo timestamp. Também se aplica às opções XML do DataFrameWriter.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadeia de caracteres de formato personalizado para carimbo de data/hora sem fuso horário que segue o formato padrão de data e hora. Isso se aplica ao tipo TimestampNTZType. Também se aplica às opções XML do DataFrameWriter.
dateFormat yyyy-MM-dd Formato de data personalizada que segue o padrão de data e hora. Isso se aplica 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 é utilizado durante a análise de datas e timestamps.
nullValue cadeia de caracteres null Define a representação em cadeia de caracteres de um valor nulo. Quando esse valor é 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 da diferenciação de maiúsculas e minúsculas quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas.
rescuedDataColumn None Se deve-se coletar todos os dados que não podem ser analisados devido a incompatibilidade de tipos de dados e de esquema (incluindo a diferença de caixa das colunas) em uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático. Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?. COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão.
singleVariantColumn none Especifica o nome da única coluna variante. Se essa opção for especificada para leitura, analise todo o registro XML em uma única coluna Variant com o valor de cadeia de caracteres de opção fornecido como o nome da coluna. Se essa opção for fornecida para gravação, escreva o valor da única coluna Variant em arquivos XML. Também se aplica às opções XML do DataFrameWriter.
useLegacyXMLParser true Se deve usar o analisador XML herdado. O analisador herdado tem uma validação menos rigorosa para conteúdo malformado, mas é menos eficiente em termos de memória. Defina para false aceitar o analisador padrão mais estrito.
wildcardColName xs_any O nome da coluna usado para capturar elementos XML que correspondem ao elemento de esquema curinga (xs:any). Não pode ser usado junto com rescuedDataColumn.

Opções do DataStreamReader

Use essas opções para DataStreamReader.option() configurar leituras de streaming de tabelas delta lake e outras fontes baseadas em arquivo.

Para obter opções de formato de arquivo (JSON, CSV, Parquet e outros), consulte as opções DataFrameReader.

Para opções do Carregador Automático (cloudFiles.*), consulte o Carregador Automático.

Example

O exemplo a seguir define maxFilesPerTrigger para 10 um fluxo de tabela delta lake:

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 opções a seguir se aplicam a tabelas delta lake e outras fontes de streaming baseadas em arquivo.

Chave Default Description
cleanSource off Como lidar com arquivos de origem depois que eles são processados pelo fluxo. Valores válidos: off (nenhuma ação), delete (excluir permanentemente o arquivo de origem) archive (mover para sourceArchiveDir). Quando definido como archive, sourceArchiveDir também deve ser definido. Não se aplica ao streaming de tabela delta lake.
fileNameOnly false Se deve identificar arquivos já processados por nome de arquivo apenas em vez de por caminho completo. Quando trueos arquivos em caminhos diferentes com o mesmo nome de arquivo são tratados como o mesmo arquivo e não são reprocessados. Não se aplica ao streaming de tabela delta lake.
latestFirst false Se os arquivos modificados mais recentemente devem ser processados primeiro em cada microlote. Útil quando você deseja processar os dados mais recentes o mais rápido possível. Quando true e maxFilesPerTrigger ou maxBytesPerTrigger é definido, maxFileAge é ignorado. Não se aplica ao streaming de tabela delta lake.
maxBytesPerTrigger None Máximo flexível para a quantidade de dados processados para cada microlote. Um lote poderá processar mais do que o limite se a menor unidade de entrada exceder. Quando usado junto com maxFilesPerTrigger, o micro-lote processa dados até que qualquer limite seja atingido primeiro. Valores válidos: inteiros positivos.
Para o Carregador Automático, use cloudFiles.maxBytesPerTrigger em vez disso. Consulte Common.
maxCachedFiles 10000 Número máximo de arquivos não processados para armazenar em cache para microlotes subsequentes. Definido para 0 desativar o cache. Aumente esse valor quando o diretório de origem contiver muitos arquivos novos para cada gatilho. Não se aplica ao streaming de tabela delta lake. Valores válidos: inteiros positivos ou 0.
maxFileAge 7d Idade máxima dos arquivos considerados para processamento, em relação ao carimbo de data/hora do arquivo modificado mais recentemente em vez da hora atual do sistema. Arquivos mais antigos que esse limite são ignorados. Aceita cadeias de caracteres 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 tabela delta lake.
maxFilesPerTrigger 1000 para Delta Lake e Carregador Automático. Não há máximo para outras fontes baseadas em arquivo. Limite superior para o número de novos arquivos processados em cada microlote. Quando usado junto com maxBytesPerTrigger, o micro-lote processa dados até que qualquer limite seja atingido primeiro. Valores válidos: inteiros positivos.
Para o Carregador Automático, use cloudFiles.maxFilesPerTrigger em vez disso. Consulte Common.
sourceArchiveDir None Caminho para o diretório de arquivo morto quando cleanSource é definido como archive. Os arquivos de origem são movidos para esse caminho após o processamento, preservando sua estrutura de diretório relativa. Não se aplica ao streaming de tabela delta lake.

Carregador Automático

Use essas opções com a origem para configurar o cloudFilesCarregador Automático para ingestão de streaming do armazenamento em nuvem. As opções específicas à origem cloudFiles são prefixadas cloudFiles para mantê-las em um namespace separado de outras opções de origem de Streaming Estruturado .

Comum

Chave Default Description
cloudFiles.allowOverwrites false Para permitir alterações no arquivo do diretório de entrada a fim de substituir os dados existentes ou não.
Para advertências de configuração, consulte O Carregador Automático processa o arquivo novamente quando o arquivo é acrescentado ou substituído?.
cloudFiles.backfillInterval None O Carregador Automático pode disparar backfills assíncronos em um intervalo específico. Por exemplo, 1 day para preencher lacunas diariamente ou 1 week para completar dados semanalmente. Para obter mais informações, consulte Acionar preenchimentos regulares usando cloudFiles.backfillInterval.
Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true.
cloudFiles.cleanSource OFF Se deseja excluir automaticamente arquivos processados do diretório de entrada. Quando definido como OFF (padrão), nenhum arquivo é excluído.
Quando definido como DELETE, o Carregador Automático exclui automaticamente os arquivos 30 dias após serem processados. Para fazer isso, o Carregador Automático deve ter permissões de gravação no diretório de origem.
Quando definido como MOVE, o Carregador Automático move automaticamente os arquivos para o local especificado em cloudFiles.cleanSource.moveDestination 30 dias após serem processados. Para fazer isso, o Carregador Automático deve ter permissões de gravação no diretório de origem e também na localização de movimentação.
Um arquivo é considerado processado quando tem um valor não nulo para commit_time o resultado da cloud_files_state função com valor de tabela. Consulte TVF cloud_files_state. A espera adicional de 30 dias após o processamento pode ser configurada usando cloudFiles.cleanSource.retentionDuration.
Examine as seguintes considerações antes de habilitar cloudFiles.cleanSource:
  • Azure Databricks não recomenda usar essa opção se houver vários fluxos consumindo dados do local de origem porque o consumidor mais rápido excluirá os arquivos e eles não serão ingeridos nas fontes mais lentas.
  • Habilitar esse recurso requer que o Carregador Automático mantenha o estado adicional em seu ponto de verificação, o que incorre na sobrecarga de desempenho, mas permite uma melhor observabilidade por meio da cloud_files_state função com valor de tabela. Consulte TVF cloud_files_state.
  • cleanSource usa a configuração atual para decidir se deseja MOVE ou DELETE um determinado arquivo. Por exemplo, suponha que a configuração foi MOVE quando o arquivo foi originalmente processado, mas foi alterado para DELETE quando o arquivo se tornou um candidato para limpeza 30 dias depois. Nesse caso, cleanSource excluirá o arquivo.
  • Não há garantia de que os arquivos sejam limpos assim que a retentionDuration expiração. Para manter os custos baixos, o Carregador Automático exclui arquivos simultaneamente com o processamento de fluxo e termina assim que o processamento de fluxo é concluído ou encerrado. Os arquivos que eram candidatos à limpeza, mas não puderam ser limpos durante o processamento do fluxo, serão coletados na próxima vez que o Carregador Automático for executado.

Disponível no Databricks Runtime 16.4 e superior.
cloudFiles.cleanSource.retentionDuration 30 days Tempo de espera antes que os arquivos processados se tornem candidatos ao arquivamento com cleanSource. Deve ser superior a 7 dias para DELETE. Nenhuma restrição mínima para MOVE.
O valor é uma cadeia de caracteres CalendarInterval . Por exemplo, "14 days", "30 days", "2 weeks" ou "1 month".
Disponível no Databricks Runtime 16.4 e superior.
cloudFiles.cleanSource.moveDestination None Caminho para arquivar arquivos processados quando cloudFiles.cleanSource estiver definido como MOVE. Pode ser um caminho de armazenamento em nuvem ou um caminho de volume do Catálogo do Unity (por exemplo, /Volumes/my_catalog/my_schema/my_volume/archive/).
O local de movimentação deve:
  • Não seja filho do diretório de origem. Se você colocar o destino de movimentação dentro do diretório de origem, os arquivos arquivados serão ingeridos novamente.
  • Esteja no mesmo local externo, volume ou montagem de DBFS que a origem. Não há suporte para movimentos entre buckets e entre contêineres e resulta em um erro.

O Carregador Automático deve ter permissões de gravação nesse diretório.
Disponível no Databricks Runtime 16.4 e superior.
cloudFiles.format Nenhum (opção necessária) O formato do arquivo de dados no caminho de origem. Os valores válidos incluem:
cloudFiles.includeExistingFiles true Para incluir arquivos existentes no caminho de entrada de processamento de fluxo ou somente para processar novos arquivos chegando 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 nenhum efeito.
cloudFiles.inferColumnTypes false Decidir se deve inferir os tipos exatos das colunas 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 a inferência de esquema para obter mais detalhes.
cloudFiles.maxBytesPerTrigger None O número máximo de novos bytes a serem processados em cada gatilho. Você pode especificar uma cadeia de caracteres de byte, como 10g, para limitar cada microlote a 10 GB de dados. Trata-se de um limite máximo não rígido. Se você tiver arquivos que são de 3 GB cada, o Azure Databricks processará 12 GB em um microlote. Quando usado em conjunto com o cloudFiles.maxFilesPerTrigger, o Azure Databricks consome até o limite inferior de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, o que for atingido primeiro. Essa opção não tem efeito quando usada com Trigger.Once() (Trigger.Once() está preterido).
No Databricks Runtime 18.0 e superior, essa opção é configurada dinamicamente e não precisa ser definida manualmente.
cloudFiles.maxFileAge None Por quanto tempo um evento de arquivo é controlado para fins de eliminação de duplicação. O Databricks não recomenda ajustar esse parâmetro, a menos que você esteja ingerindo dados na ordem de milhões de arquivos por hora. Consulte a seção sobre rastreamento de eventos de arquivo para obter mais detalhes.
O ajuste cloudFiles.maxFileAge muito agressivo pode causar problemas de qualidade de dados, como ingestão duplicada ou arquivos ausentes. Por isso, o Databricks recomenda uma configuração conservadora para cloudFiles.maxFileAge, como 90 dias, que é semelhante ao que as soluções de ingestão de dados comparáveis recomendam.
cloudFiles.maxFilesPerTrigger 1000 Número máximo de novos arquivos a serem processados em cada gatilho. Quando usado em conjunto com o cloudFiles.maxBytesPerTrigger, o Azure Databricks consome até o limite inferior de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, o que for atingido primeiro. Essa opção não tem efeito quando usada com Trigger.Once() (preterido).
No Databricks Runtime 18.0 e superior, essa opção é configurada dinamicamente e não precisa ser definida manualmente.
cloudFiles.partitionColumns None Uma lista separada por vírgulas de colunas de partição no estilo Hive que você gostaria de inferir da estrutura de diretório dos arquivos. As colunas de partição no estilo Hive 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, b e c. Por padrão, essas colunas são adicionadas automaticamente ao seu esquema se você estiver usando a inferência de esquema e fornecer o <base-path> para carregar dados. Se você fornecer um esquema, o Carregador automático espera que essas colunas sejam incluídas no esquema. Se você não quiser essas colunas no seu esquema, poderá especificar "" para ignorar essas colunas. Além disso, é possível usar essa opção quando quiser que as colunas sejam inferidas a partir do caminho do arquivo em estruturas de diretório complexas, como no exemplo a seguir:
<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.csv
Especificar 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 addNewColumnsquando um esquema não for fornecido, caso contrário, none Modo para a evolução do 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. Confira a evolução do esquema para obter mais detalhes.
cloudFiles.schemaHints None Informações de esquema que você fornece para o Auto Loader durante a inferência de esquema. Confira as dicas de esquema para obter mais detalhes.
cloudFiles.schemaLocation Nenhum (necessário para inferir o esquema) Local para armazenar o esquema deduzido e as alterações subsequentes. Consulte a inferência de esquema para obter mais detalhes.
cloudFiles.useStrictGlobber false Se deve usar um globber estrito que corresponda ao comportamento padrão de globbing de outras fontes de arquivo 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 Para validar as opções de Carregador Automático e retornar um erro em opções desconhecidas ou inconsistentes ou não.

Listagem de diretório

Chave Default Description
cloudFiles.useIncrementalListing (preterido) auto no Databricks Runtime 17.2 e abaixo, false no Databricks Runtime 17.3 e superior Esse recurso foi preterido. O Databricks recomenda usar o 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 carregador automático fará o melhor para detectar automaticamente se determinado diretório é aplicável à listagem incremental. Você pode usar explicitamente a listagem incremental ou usar a listagem de diretório completa, definindo-a como true ou false, respectivamente.
Habilitar incorretamente a listagem incremental em um diretório não ordenado lexicamente impede que o Carregador Automático descubra novos arquivos.
Funciona com o Azure Data Lake Storage (abfss://), S3 (s3://) e GCS (gs://).
Disponível no Databricks Runtime 9.1 LTS e superior.
Valores disponíveis: auto, true, false

Notificação de arquivo

Para obter informações sobre como configurar o modo de notificação de arquivo, incluindo permissões de nuvem necessárias, instruções de instalação e métodos de autenticação, consulte Configurar fluxos do Carregador Automático no modo de notificação de arquivo.

Chave Default Description
cloudFiles.fetchParallelism 1 Número de threads a ser usado ao buscar mensagens do serviço de colocação na fila.
Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true.
cloudFiles.pathRewrites None Necessário somente se você especificar um queueUrl que receba notificações de arquivo de vários buckets S3 e quiser usar pontos de montagem configurados para acessar dados nesses contêineres. Use essa opção para reescrever o prefixo do caminho bucket/key com o ponto de montagem. Somente 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 para dbfs:/mnt/data-warehouse/2017/08/fileA.json.
Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true.
cloudFiles.resourceTag None Série de pares de etiquetas 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 configurar tags para um tópico do Amazon SNS. (1)
Para saber mais sobre o Azure, consulte Nomenclatura de filas e metadados e a cobertura de properties.labels em Assinaturas de eventos. O Carregador automático armazena esses pares de marca de chave-valor em JSON como rótulos. (1)
Para obter mais informações sobre o GCP, consulte Como relatar o uso com rótulos. (1)
Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true. Em vez disso, defina marcas de recurso usando o console do provedor de nuvem.
cloudFiles.useManagedFileEvents false Quando definido como true, o Carregador Automático usa o serviço de eventos de arquivo para descobrir arquivos em seu local externo. Você só poderá usar essa opção se o caminho de carga estiver em um local externo com eventos de arquivo habilitados. Consulte Use o modo de notificação de arquivo com eventos de arquivos.
Os eventos de arquivo fornecem desempenho no nível de notificações na descoberta de arquivos, pois o Carregador Automático pode descobrir novos arquivos após a última execução. Ao contrário da listagem de diretórios, esse processo não precisa listar todos os arquivos no diretório.
Há algumas situações em que o Carregador Automático usa a listagem de diretórios mesmo que a opção de eventos de arquivo esteja habilitada:
  • Durante a carga inicial, quando includeExistingFiles é definida como true, uma listagem de diretório completa ocorre para descobrir todos os arquivos que estavam presentes no diretório antes do início do Carregador Automático.
  • O serviço de eventos de arquivo otimiza a descoberta de arquivos armazenando em cache os arquivos criados mais recentemente. Se o Carregador Automático for executado com pouca frequência, esse cache poderá expirar e o Carregador Automático retornará à listagem de diretórios para descobrir arquivos e atualizar o cache. Para evitar esse cenário, invoque o Carregador Automático pelo menos uma vez a cada sete dias.

Veja Quando o Carregador Automático com eventos de arquivo usa a listagem de diretórios? Para obter uma lista abrangente de situações em que o Carregador Automático usa a listagem de diretórios com essa opção.
Disponível no Databricks Runtime 14.3 LTS e superior.
cloudFiles.listOnStart false Quando definido como true, o Carregador Automático executa uma listagem de diretório completa quando o fluxo é iniciado, em vez de começar com o token de continuação no ponto de verificação. Use essa opção para se recuperar de erros, como CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Veja como fazer para me recuperar de um CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN erro?.
cloudFiles.useNotifications false Para usar o modo de notificação de arquivo a fim de determinar quando há novos arquivos ou não. Se false, use o modo de listagem de diretórios. Consulte Comparar os modos de detecção de arquivos do Carregador Automático.
Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true.

(1) O Carregador automático adiciona os seguintes pares de marca de chave-valor por padrão com base no melhor esforço:

  • vendor: Databricks
  • path: Local de onde os dados são carregados. Não disponível em GCP devido à limitações de rotulagem.
  • checkpointLocation: a posição do ponto de controle do fluxo. Não disponível em GCP devido à limitações de rotulagem.
  • streamId: Identificador exclusivo global do fluxo.

O Databricks reserva esses nomes de chave e você não pode substituir seus valores.

Específico da nuvem

O Carregador Automático fornece opções para configurar a infraestrutura de nuvem para o modo de notificação de arquivo. Para obter as permissões de nuvem necessárias e as instruções de instalação, consulte Configurar fluxos do Carregador Automático no modo de notificação de arquivo.

AWS

Forneça as seguintes opções somente se você escolher cloudFiles.useNotifications = true e quiser que o Carregador Automático configure os serviços de notificação para você:

Chave Default Description
cloudFiles.region A região da instância do EC2 A região onde reside o bucket S3 de origem e onde você deseja criar os serviços SNS e SQS do AWS.
Chave Default Description
cloudFiles.restrictNotificationSetupToSameAWSAccountId false Permitir somente notificações de eventos de buckets do AWS S3 na mesma conta que o tópico SNS. Quando verdadeiro, o Auto Loader aceita notificações de eventos apenas de buckets do AWS S3 que estejam na mesma conta do tópico SNS.
Quando false, a política de acesso não restringe as configurações do bucket entre contas e do tópico SNS. Isso é útil quando o tópico SNS e o caminho do bucket são associados a contas diferentes.
Disponível no Databricks Runtime 17.2 e superior.

Forneça a opção a seguir somente se você escolher cloudFiles.useNotifications = true e desejar que o Carregador automático use uma fila já configurada:

Chave Default Description
cloudFiles.queueUrl None URL da fila do SQS. Se fornecido, o Carregador automático consumirá diretamente eventos dessa fila em vez de configurar os próprios serviços SNS e SQS da AWS.

Opções de autenticação do AWS

Forneça a seguinte opção de autenticação para usar uma credencial de serviço do Databricks:

Chave Default Description
databricks.serviceCredential None O nome da credencial de serviço do seu Databricks. Disponível no Databricks Runtime 16.1 e superior.

Quando as credenciais de serviço do Databricks ou as funções IAM não estiverem disponíveis, você poderá fornecer as seguintes opções de autenticação:

Chave Default Description
cloudFiles.awsAccessKey None ID da chave de acesso da AWS do usuário. Deve ser fornecido com cloudFiles.awsSecretKey.
cloudFiles.awsSecretKey None Chave de acesso secreta da AWS do usuário. Deve ser fornecido com cloudFiles.awsAccessKey.
cloudFiles.roleArn None A ARN de uma função IAM a ser assumida, 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 Identificador a ser fornecido ao assumir uma função usando cloudFiles.roleArn.
cloudFiles.roleSessionName None Um nome de sessão opcional a ser usado ao assumir uma função usando cloudFiles.roleArn.
cloudFiles.stsEndpoint None Ponto de extremidade opcional a ser usado para acessar o STS da AWS ao assumir uma função usando cloudFiles.roleArn.
Azure

Você deverá fornecer valores para todas as opções a seguir se especificar cloudFiles.useNotifications = true e quiser que o Carregador automático configure os serviços de notificação para você:

Chave Default Description
cloudFiles.resourceGroup None O grupo de recursos Azure no qual a conta de armazenamento é criada.
cloudFiles.subscriptionId None A ID da Assinatura Azure na qual o grupo de recursos é criado.
databricks.serviceCredential None O nome da credencial de serviço do seu Databricks. Disponível no Databricks Runtime 16.1 e superior.

Se uma credencial de serviço do Databricks não estiver disponível, você poderá fornecer as seguintes opções de autenticação:

Chave Default 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 entidade de serviço.
cloudFiles.connectionString None Cadeia de conexão da conta de armazenamento, com base na chave de acesso da conta ou na assinatura de acesso compartilhado (SAS).
cloudFiles.tenantId None A ID do locatário Azure na qual a entidade de serviço é criada.

Forneça a seguinte opção somente se você definir cloudFiles.useNotifications = true e quiser que o Carregador Automático use uma fila existente:

Chave Default Description
cloudFiles.queueName None Nome da fila do Azure. Se fornecido, a origem dos arquivos de nuvem consumirá diretamente os eventos desta fila em vez de configurar os próprios serviços da Grade de Eventos e do Armazenamento de Filas do Azure. Nesse caso, databricks.serviceCredential ou cloudFiles.connectionString requer apenas permissões de leitura na fila.
GCP

O Carregador Automático pode configurar automaticamente os serviços de notificação para você aproveitando as credenciais de serviço do Databricks . A conta de serviço criada com a credencial de serviço do Databricks exigirá as permissões especificadas em Configurar fluxos do Carregador Automático no modo de notificação de arquivo.

Chave Default Description
cloudFiles.projectId None A ID do projeto em que o bucket do GCS está. A assinatura do Google Cloud Pub/Sub também é criada neste projeto.
databricks.serviceCredential None O nome da credencial de serviço do seu Databricks. Disponível no Databricks Runtime 16.1 e superior.

Se uma credencial de serviço do Databricks não estiver disponível, você poderá usar as Contas de Serviço do Google diretamente. Você pode configurar seu cluster para assumir uma conta de serviço seguindo a configuração do serviço Google ou fornecer as seguintes opções de autenticação diretamente:

Chave Default Description
cloudFiles.client None ID do cliente da conta de serviço do Google.
cloudFiles.clientEmail None Email 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 A ID da chave privada gerada para a Conta de Serviço do Google.

Forneça a opção a seguir somente se você escolher cloudFiles.useNotifications = true e desejar que o Carregador automático use uma fila já configurada:

Chave Default Description
cloudFiles.subscription None Nome da assinatura do Pub/Sub do Google Cloud. Se fornecida, a origem dos arquivos de nuvem consome eventos dessa fila em vez de configurar a própria notificação do GCS e os serviços Pub/Sub do Google Cloud.

Lago Delta

As opções a seguir se aplicam ao ler de uma tabela delta lake usando spark.readStream.

Chave Default Description
allowSourceColumnDrop None Defina como um número de versão da tabela Delta ou "always" para permitir que o fluxo continue depois que as colunas forem removidas do esquema da tabela de origem. Quando definido como um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake.
allowSourceColumnRename None Defina como um número de versão da tabela Delta ou "always" para permitir que o fluxo continue depois que as colunas forem renomeada na tabela de origem. Quando definido como um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake.
allowSourceColumnTypeChange None Defina como um número de versão da tabela Delta ou "always" para permitir que o fluxo continue após os tipos de coluna serem alterados na tabela de origem. Quando definido como um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Confira Ampliação de tipo.
excludeRegex None Um padrão de expressão regular. Os arquivos cujos caminhos correspondem ao padrão são excluídos da leitura de streaming. Útil para filtrar arquivos que não estão em conformidade com a convenção de nomenclatura esperada.
failOnDataLoss true Se a consulta de streaming será reprovada se os dados de origem tiverem sido excluídos devido à retenção de log (logRetentionDuration). Defina para false ignorar dados ausentes e continuar o processamento. Consulte Configurar retenção de dados para consultas de viagem no tempo.
ignoreChanges (preterido) false Disponível no Databricks Runtime 11.3 LTS e inferior. Emite novamente arquivos de dados reescritos após operações de modificação, como UPDATE, MERGE INTO, DELETEou OVERWRITE. Linhas inalteradas podem ser emitidas junto com novas linhas, portanto, os consumidores downstream devem lidar com duplicatas. As exclusões não são propagadas para etapas posteriores. Substituído pelo skipChangeCommits Databricks Runtime 12.2 LTS e superior.
ignoreDeletes (preterido) false Ignora transações que excluem dados em limites de partição (somente a partição completa é descartada). Não lida com exclusões, atualizações ou outras modificações não particionais. Use skipChangeCommits em seu lugar.
readChangeFeed ou readChangeData false Se deseja habilitar a leitura do feed de dados de alteração para a consulta de streaming. Quando habilitado, o fluxo emite alterações no nível da linha (inserções, atualizações e exclusões) com colunas de metadados adicionais. Consulte o feed de dados de alterações do Delta Lake no Azure Databricks.
schemaTrackingLocation None Caminho para um diretório em que o Delta Lake rastreia as alterações de esquema para a leitura de streaming. Necessário ao transmitir de tabelas com mapeamento de coluna habilitado e usando allowSourceColumn* opções para lidar com a evolução do esquema. Deve estar dentro da checkpointLocation consulta de streaming. Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake.
skipChangeCommits false Ignora transações que excluem ou modificam registros e processos existentes somente acrescentam. O Databricks recomenda essa opção para a maioria das cargas de trabalho que não usam feeds de dados de alteração. Disponível no Databricks Runtime 12.2 LTS e superior. Consulte Ignorar confirmações de alteração upstream com skipChangeCommits.
startingTimestamp Mais recente disponível Carimbo de data/hora do qual começar a ler. O fluxo lê todas as alterações de tabela confirmadas no ou após o carimbo de data/hora especificado. Se o carimbo de data/hora preceder todas as confirmações de tabela disponíveis, o fluxo será iniciado a partir da confirmação disponível mais antiga. Não pode ser usado junto com startingVersion. Ignorado se o ponto de verificação de streaming já existe.
Valores válidos: uma cadeia de caracteres de carimbo de data/hora, como "2019-01-01T00:00:00.000Z" ou uma cadeia de caracteres de data, como "2019-01-01".
startingVersion Mais recente disponível Versão da tabela Delta da qual começar a ler. O fluxo lê todas as alterações confirmadas na versão especificada ou após a versão especificada. Especifique "latest" para começar apenas com as alterações mais recentes. Não pode ser usado junto com startingTimestamp. Ignorado se o ponto de verificação de streaming já existe. Consulte Trabalhar com o histórico de tabelas.
withEventTimeOrder false Divide o instantâneo inicial da tabela em buckets de tempo de evento para impedir que os registros sejam marcados incorretamente como eventos tardios e descartados em consultas com estado com marcas d'água. Não é possível alterar depois que o processamento de instantâneo inicial tiver sido iniciado sem excluir o ponto de verificação. Disponível no Databricks Runtime 11.3 LTS e versões superiores. Consulte Processar instantâneo inicial sem descartar dados.

Kafka

Use estas opções com ou spark.readStream.format("kafka")spark.read.format("kafka"):

Chave Default Description
assign None As partições específicas a serem consumida. Você deve especificar exatamente uma das subscribesubscribePatternopções ou assign opções. Valores válidos: uma cadeia de caracteres JSON, como {"topicA":[0,1],"topicB":[2,4]}.
failOnDataLoss true Se a consulta deve falhar se os dados podem ter sido perdidos, por exemplo, devido a tópicos excluídos ou truncamento de deslocamento. Defina para false ignorar dados ausentes e continuar. Valores válidos: true, false.
O Databricks estima de forma conservadora se os dados podem ter sido perdidos. No entanto, isso pode causar alarmes falsos.
fetchoffset.numretries 3 O número de tentativas ao buscar deslocamentos do Kafka falha. Valores válidos: inteiros não negativos.
fetchoffset.retryintervalms 1000 O intervalo em milissegundos entre tentativas de busca de deslocamento. Valores válidos: inteiros não negativos.
groupIdPrefix spark-kafka-source (streaming), spark-kafka-relation (lote) O prefixo personalizado a ser usado para a ID do grupo de consumidores kafka gerada automaticamente. Se kafka.group.id estiver definido explicitamente, o conector ignorará essa opção. Valores válidos: qualquer cadeia de caracteres.
includeHeaders false Se deve incluir cabeçalhos de mensagem kafka como uma coluna na saída. Valores válidos: true, false.
kafkaconsumer.polltimeoutms None O tempo limite 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 agentes kafka. Define a propriedade do bootstrap.servers cliente Kafka.
Se você descobrir que não há dados do Kafka, verifique se há endereços incorretos nessa lista de endereços do agente. Se a lista de endereços do agente estiver incorreta, talvez não haja erros. Os clientes kafka pressupõem que os agentes estarão disponíveis eventualmente e tentarão novamente para sempre quando receberem erros de rede.
maxRecordsPerPartition None O número máximo de registros para cada partição do Spark. Quando definido, o conector divide as partições do Kafka para que cada partição do Spark leia, no máximo, tantos registros. Valores válidos: inteiros positivos.
Você também pode usar essa opção com minPartitions. Quando ambas as opções são definidas, o Spark usa qualquer opção que resulte em mais partições.
minPartitions None O número mínimo de partições do Spark a serem lidas do Kafka. Quando definido, o conector divide grandes partições kafka para aumentar o paralelismo. Quando não definido, o Spark cria uma partição para cada tópico-partição do Kafka. Útil para lidar com cargas de pico ou distorção de dados. Valores válidos: inteiros positivos.
Essa opção reinicializa os consumidores kafka para cada gatilho, o que pode afetar o desempenho com SSL.
startingOffsets latest (streaming), earliest (lote) O deslocamento do qual a consulta começa a leitura. Valores válidos: earliest, latestou uma cadeia de caracteres JSON de deslocamentos para cada partição, como {"topicA":{"0":23,"1":-2}}. Na cadeia de caracteres JSON, -1 é o deslocamento mais recente. -2 é o deslocamento mais antigo.
Para consultas de streaming, essa opção só se aplica quando uma nova consulta é iniciada. As consultas retomadas sempre usam o ponto de verificação. Durante uma consulta, novas partições começam a ser lidos no deslocamento mais cedo.
Para consultas em lote, latest não é permitido.
startingOffsetsByTimestamp None Uma lista de deslocamentos iniciais para cada partição, especificada como carimbos de data/hora em milissegundos. Quando nenhum deslocamento existe para um carimbo de data/hora, o comportamento da consulta é determinado por startingOffsetsByTimestampStrategy. Valores válidos: uma cadeia de caracteres JSON de carimbos de data/hora para cada partição, como {"topicA":{"0":1000,"1":2000}}.
Para consultas de streaming, essa opção só se aplica quando uma nova consulta é iniciada. As consultas retomadas sempre usam o ponto de verificação. Durante uma consulta, novas partições começam a ser lidos no deslocamento mais cedo.
startingOffsetsByTimestampStrategy error A estratégia a ser usada quando nenhum deslocamento é encontrado para um carimbo de data/hora 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 de data/hora inicial global em milissegundos que se aplica a todas as partições. Quando nenhum deslocamento existe para o carimbo de data/hora, o comportamento é controlado por startingOffsetsByTimestampStrategy. Valores válidos: inteiros não negativos.
subscribe None Os tópicos a serem assinados. Você deve especificar exatamente uma das subscribesubscribePatternopções ou assign opções. Valores válidos: uma lista separada por vírgulas de nomes de tópico.
subscribePattern None O padrão usado para assinar tópicos. Você deve especificar exatamente uma das subscribesubscribePatternopções ou assign opções. Por exemplo, topic.*. Valores válidos: qualquer cadeia de caracteres regex Java.

As opções a seguir se aplicam somente às leituras de streaming com spark.readStream.format("kafka"):

Chave Default Description
bytesEstimateWindowLength 300s A janela de tempo usada para estimar os bytes restantes para a estimatedTotalBytesBehindLatest métrica. Valores válidos: cadeias de caracteres de duração como 10m ou 600s. Consulte Recuperar métricas do Kafka.
maxOffsetsPerTrigger None O número máximo de deslocamentos a serem processados por intervalo de gatilho. Os deslocamentos são distribuídos proporcionalmente entre partições de tópico. Valores válidos: inteiros positivos.
maxTriggerDelay 15m O tempo máximo a ser esperado para minOffsetsPerTrigger se acumular antes de disparar. Valores válidos: cadeias de caracteres de duração como 10m ou 600s.
minOffsetsPerTrigger None O número mínimo de deslocamentos a serem acumulados antes de disparar um microlote. Quando maxTriggerDelay atingido, o microlote é executado independentemente. Valores válidos: inteiros positivos.

Para obter opções de deslocamento que se aplicam somente às leituras em lote com spark.read.format("kafka"), consulte as opções do Kafka do DataFrameReader.

Para opções de cliente kafka (kafka.*) e autenticação, consulte Opções.

Opções de DataFrameWriter

Use essas opções com DataFrameWriter.option() e DataFrameWriterV2.option() para controlar como Azure Databricks grava dados.

Example

O exemplo a seguir define mergeSchema para escrever True uma tabela 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

Chave Default Description
avroSchema None O esquema Avro completo como uma cadeia de caracteres JSON. Use essa opção para converter tipos SQL do Spark em tipos específicos do Avro. Aplica-se ao arquivo Avro.
avroSchemaUrl None Uma URL que aponta para um arquivo de esquema do Avro. Use em vez de avroSchema quando o esquema é armazenado externamente. Mutuamente exclusivo com avroSchema. Aplica-se ao arquivo Avro.
compression snappy Codec de compactação a ser usado ao gravar. Valores válidos: uncompressed, , deflate, snappy, bzip2, xz, . zstandard Aplica-se ao arquivo Avro.
recordName topLevelRecord O nome do registro de nível superior no esquema Avro de saída. Aplica-se ao arquivo Avro.
positionalFieldMatching false Se as colunas devem ser correspondentes entre o esquema Spark e o esquema do Avro por posição de campo em vez de por nome. Aplica-se ao arquivo Avro.
recordNamespace Cadeia vazia O namespace para o registro de nível superior no esquema Avro de saída. Aplica-se ao arquivo Avro.

Delta Lake e Apache Iceberg

Chave Default Description
clusterByAuto false Se deseja habilitar o clustering líquido automático, em que Azure Databricks seleciona colunas de clustering com base em padrões de consulta. Somente válido 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 clustering líquido para tabelas.
mergeSchema None Se deseja habilitar a evolução do esquema para a operação de gravação. Novas colunas no DataFrame de origem são adicionadas ao esquema da tabela de destino. Aplica-se a acréscimos em lote e streaming. Aplica-se ao esquema de tabela De atualização.
overwriteSchema None Se deseja substituir o esquema de tabela e o particionamento ao substituir. mode("overwrite") Requer sem replaceWhere. Não pode ser usado com partitionOverwriteMode. Aplica-se ao esquema de tabela De atualização.
partitionOverwriteMode None O modo de substituição de partição. Defina isso para dynamic substituir apenas partições que contêm novos dados, deixando todas as outras partições inalteradas. Modo herdado, sem suporte na computação sem servidor ou no SQL do Databricks. Valores válidos: static, dynamic. Aplica-se à substituição seletiva de dados com o Delta Lake.
replaceOn None Uma expressão booliana que corresponde às linhas na tabela de destino a serem substituídas por linhas da consulta de origem. Pode referenciar colunas da tabela de destino e da consulta de origem. As linhas no destino que correspondem a uma linha de origem são excluídas e substituídas. Se a origem estiver vazia, nenhuma exclusão ocorrerá. Use targetAlias para desambiguar referências de coluna. Disponível no Databricks Runtime 17.1 e superior. Aplica-se à substituição seletiva de dados com o Delta Lake.
replaceUsing None Uma lista separada por vírgulas de nomes de coluna usados para corresponder linhas entre a tabela de destino e a consulta de origem. O destino e a origem devem conter todas as colunas listadas. As linhas no destino que correspondem a uma linha de origem em comparação de igualdade são excluídas e substituídas. NULL os valores são tratados como não iguais e não correspondem. Disponível no Databricks Runtime 16.3 e superior. Aplica-se à substituição seletiva de dados com o Delta Lake.
replaceWhere None Uma expressão de predicado. Substitui atomicamente apenas os registros que correspondem ao predicado. Aplica-se à substituição seletiva de dados com o Delta Lake.
targetAlias None Um alias de cadeia de caracteres para a tabela de destino. Use com replaceOn ou replaceWhere para desambiguar referências de coluna quando a condição fizer referência a colunas da tabela de destino e da consulta de origem. Aplica-se à substituição seletiva de dados com o Delta Lake.
txnAppId None Uma cadeia de caracteres exclusiva que identifica o aplicativo para gravações idempotentes em foreachBatch operações. Use em conjunto para txnVersion garantir gravações exatamente uma vez em várias tabelas delta lake. Aplica-se ao Uso foreachBatch para gravações de tabela idempotentes.
txnVersion None Um número de aumento monotonicamente usado como a versão da transação para gravações idempotentes em foreachBatch operações. Use em conjunto para txnAppId garantir gravações exatamente uma vez em várias tabelas delta lake. Aplica-se ao Uso foreachBatch para gravações de tabela idempotentes.
optimizeWrite None Se deseja habilitar a Gravação de Otimização Automática para esta operação de gravação. Substitui a spark.databricks.delta.optimizeWrite.enabled configuração. Aplica-se a O que é o Delta Lake em Azure Databricks?.
userMetadata None Uma cadeia de caracteres definida pelo usuário acrescentada aos metadados de confirmação para a operação de gravação. Visível na saída de DESCRIBE HISTORY. Aplica-se a tabelas enriquecedoras com metadados personalizados.

CSV

Chave Default Description
charToEscapeQuoteEscaping \0 (não habilitado) O caractere usado para escapar do caractere de escape quando ele difere do caractere de aspas. Aplica-se ao csv (DataFrameWriter).
compression none Codec de compactação a ser usado ao gravar. Valores válidos: none, , bzip2, gzip, lz4, snappy, , deflate, zstd. Aplica-se ao csv (DataFrameWriter).
dateFormat yyyy-MM-dd Formatar cadeia de caracteres para valores de coluna de data. Aplica-se ao csv (DataFrameWriter).
emptyValue Cadeia vazia A cadeia de caracteres gravada para valores vazios (não nulos). Aplica-se ao csv (DataFrameWriter).
encoding UTF-8 A codificação de caracteres para os arquivos de saída. Aplica-se ao csv (DataFrameWriter).
escape \ O caractere usado para escapar dos valores entre aspas. Aplica-se ao csv (DataFrameWriter).
escapeQuotes true Se os caracteres de aspas devem ser escapados dentro dos valores de campo entre aspas. Aplica-se ao csv (DataFrameWriter).
header false Se deve gravar nomes de coluna como a primeira linha da saída. Aplica-se ao csv (DataFrameWriter).
ignoreLeadingWhiteSpace false Se deseja cortar o espaço em branco à esquerda de valores ao gravar. Aplica-se ao csv (DataFrameWriter).
ignoreTrailingWhiteSpace false Se deseja cortar o espaço em branco à direita dos valores ao gravar. Aplica-se ao csv (DataFrameWriter).
lineSep \n A cadeia de caracteres do separador de linha usada entre registros. Aplica-se ao csv (DataFrameWriter).
locale en-US Um identificador java.util.Locale. Influencia a formatação de valores de data e carimbo de data/hora ao gravar.
nullValue Cadeia vazia Cadeia de caracteres gravada para valores nulos. Aplica-se ao csv (DataFrameWriter).
quote " O caractere usado para citar valores de campo que contêm o separador. Aplica-se ao csv (DataFrameWriter).
quoteAll false Se deve colocar todos os valores de campo entre aspas, independentemente do conteúdo. Aplica-se ao csv (DataFrameWriter).
sep , O caractere delimitador de campo. Aplica-se ao csv (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] A cadeia de caracteres de formato para valores de coluna de carimbo de data/hora. Aplica-se ao csv (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatar cadeia de caracteres para carimbo de data/hora sem valores de coluna de fuso horário (TimestampNTZType).

Excel

Chave Default Description
dataAddress None O nome da planilha ou a célula inicial da gravação. Se omitido, grava em uma planilha nomeada Sheet1 começando na célula A1. Aceita um nome de planilha ("SheetName") ou uma referência de célula única ("SheetName!A1"). Não há suporte para intervalos de células para gravações.
dateFormatInWrite yyyy-mm-dd Excel cadeia de caracteres de formato de célula aplicada a colunas Date. Usa Excel sintaxe de formato.
headerRows 0 Se deve escrever nomes de coluna como a primeira linha. Valores válidos: 0, 1.
timestampNTZFormat yyyy-mm-dd hh:mm:ss Excel cadeia de caracteres de formato de célula aplicada a colunas TimestampNTZ e Timestamp. Usa Excel sintaxe de formato.
version xlsx A versão de formato de arquivo Excel a ser gravada. Valores válidos: xlsx, xls.

JSON

Chave Default Description
compression none Codec de compactação a ser usado ao gravar. Valores válidos: none, , bzip2, gzip, lz4, snappy, , deflate, zstd. Aplica-se a json (DataFrameWriter).
dateFormat yyyy-MM-dd Formatar cadeia de caracteres para valores de coluna de data. Aplica-se a json (DataFrameWriter).
encoding UTF-8 A codificação de caracteres para os arquivos 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 de caracteres do separador de linha usada entre registros. Aplica-se a json (DataFrameWriter).
locale en-US Um identificador java.util.Locale. Influencia a formatação de valores de data e carimbo de data/hora ao gravar.
pretty false Se deseja habilitar uma saída JSON bonita (recuada, multilinha).
sortKeys false Se as chaves de objetos JSON devem ser classificadas em ordem alfabética na saída. Útil para produzir a saída determinística.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] A cadeia de caracteres de formato para valores de coluna de carimbo de data/hora. Aplica-se a json (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatar cadeia de caracteres para carimbo de data/hora sem valores de coluna de fuso horário (TimestampNTZType).
writeNonAsciiCharacterAsCodePoint false Se deseja codificar caracteres não ASCII como \uXXXX sequências de escape Unicode em vez de caracteres UTF-8 literais na saída.

ORC

Chave Default Description
compression zstd Codec de compactação a ser usado ao gravar. Valores válidos: none, , uncompressed, snappy, zlib, lzo, , zstd, lz4, . brotli Aplica-se a orc (DataFrameWriter).

Parquet

Chave Default Description
compression snappy Codec de compactação a ser usado ao gravar. 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 de data/hora. Valores válidos: INT96, , TIMESTAMP_MICROSTIMESTAMP_MILLIS. Use INT96 para compatibilidade com leitores parquet herdados que não dão suporte aos tipos de carimbo de data/hora padrão.

Texto

Chave Default Description
compression none Codec de compactação a ser usado ao gravar. Valores válidos: none, , bzip2, gzip, lz4, snappy, , deflate, zstd. Aplica-se ao texto (DataFrameWriter).
encoding UTF-8 A codificação de caracteres para os arquivos de saída.
lineSep \n A cadeia de caracteres do separador de linha usada entre registros. Aplica-se ao texto (DataFrameWriter).

XML

Chave Default Description
arrayElementName item O nome do elemento para elementos de matriz que não têm nenhum nome explícito. Aplica-se a xml (DataFrameWriter).
attributePrefix _ O prefixo anexado a nomes de campo que correspondem a atributos XML. Aplica-se a xml (DataFrameWriter).
compression none Codec de compactação a ser usado ao gravar. Valores válidos: none, , bzip2, gzip, lz4, snappy, , deflate, zstd. Aplica-se a xml (DataFrameWriter).
dateFormat yyyy-MM-dd Formatar cadeia de caracteres para valores de coluna de data. Aplica-se a xml (DataFrameWriter).
declaration version="1.0" encoding="UTF-8" standalone="yes" A cadeia de caracteres de declaração XML gravada na parte superior de cada arquivo de saída. Defina como uma cadeia de caracteres vazia para suprimir a declaração. Aplica-se a xml (DataFrameWriter).
encoding UTF-8 A codificação de caracteres para os arquivos de saída. Aplica-se a xml (DataFrameWriter).
indent 4 espaços A cadeia de caracteres usada para recuar elementos filho na saída. Defina como uma cadeia de caracteres vazia para desativar o recuo e gravar cada linha em uma única linha.
locale en-US Um identificador java.util.Locale. Influencia a formatação de valores de data e carimbo de data/hora ao gravar.
nullValue null A cadeia de caracteres gravada para valores nulos. Quando definido como null, atributos e elementos filho para campos nulos são omitidos. Aplica-se a xml (DataFrameWriter).
rootTag ROWS A marca de elemento raiz que encapsula todos os elementos de linha na saída. Aplica-se a xml (DataFrameWriter).
rowTag ROW A marca de elemento que representa uma linha na saída. Aplica-se a xml (DataFrameWriter).
singleVariantColumn None O nome da única coluna Variant a ser gravada em arquivos XML. Aplica-se a xml (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] A cadeia de caracteres de formato para valores de coluna de carimbo de data/hora. Aplica-se a xml (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatar cadeia de caracteres para carimbo de data/hora sem valores de coluna de fuso horário. Aplica-se a xml (DataFrameWriter).
validateName true Se deve gerar uma exceção se um nome de coluna não for um identificador de elemento XML válido. Aplica-se a xml (DataFrameWriter).
valueTag _VALUE O nome do campo usado para dados de caractere em elementos XML que também têm atributos ou elementos filho. Aplica-se a xml (DataFrameWriter).

Opções do DataStreamWriter

Use essas opções para DataStreamWriter.option() configurar gravações de streaming.

Example

O exemplo a seguir define o local de ponto de verificação 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

Chave Default Description
checkpointLocation Nenhum (obrigatório) Caminho para o diretório de ponto de verificação para a consulta de streaming. Necessário para tolerância a falhas e garantias de processamento exatamente uma vez. Cada consulta de streaming deve usar um local de ponto de verificação exclusivo. O Databricks recomenda armazenar pontos de verificação em um volume do Catálogo do Unity ou no caminho de armazenamento em nuvem. Consulte Pontos de verificação de Fluxo Estruturado.
path None Caminho de saída para coletores de streaming baseados em arquivo, como Parquet. Aplica-se somente a formatos baseados em arquivo.

Coletor de console

Chave Default Description
numRows 20 O número de linhas a serem exibidas para cada microlote ao gravar no coletor do console.
truncate true Se você deve truncar cadeias de caracteres longas ao exibir linhas. Definido para false mostrar valores de cadeia de caracteres completos.

Lago Delta

As opções a seguir se aplicam ao escrever um fluxo em uma tabela delta lake usando format("delta"). Opções somente substituição, como overwriteSchema, replaceWheree partitionOverwriteMode não têm suporte para gravações de streaming.

Chave Default Description
mergeSchema false Se o esquema da tabela Delta Lake deve ser evoluído quando o DataFrame de streaming contiver novas colunas. Aplica-se somente ao modo de saída de acréscimo. Aplica-se ao esquema de tabela De atualização.
userMetadata None Uma cadeia de caracteres definida pelo usuário acrescentada aos metadados de confirmação para a operação de gravação. Visível na saída de DESCRIBE HISTORY. Aplica-se a tabelas enriquecedoras com metadados personalizados.

Coletor de arquivos

A opção a seguir se aplica ao gravar um fluxo em formatos baseados em arquivo (Parquet, JSON, CSV, ORC, texto). Para obter opções específicas de formato, consulte as opções do DataFrameWriter.

Chave Default Description
retention None Por quanto tempo manter arquivos de metadados do coletor usados para tolerância a falhas e compactação. Aceita uma cadeia de caracteres de tempo como 7 days ou 24 hours. Quando não definido, os arquivos de metadados são mantidos indefinidamente.

Coletor Kafka

Para obter uma lista completa de opções para gravar fluxos no Kafka, consulte Opções.

Chave Default Description
kafka.bootstrap.servers None Required. Uma lista separada por vírgulas de endereços do agente host:port kafka.
topic None O tópico kafka de destino para todas as linhas. Necessário se o DataFrame não incluir uma topic coluna.
kafka.* None Qualquer configuração de produtor kafka prefixada com kafka.. Por exemplo, kafka.compression.type.

Coletor de memória

Chave Default Description
queryName Nenhum (obrigatório) O nome da tabela na memória na qual a consulta grava. Necessário para o coletor de memória. Também configurável por meio de .queryName().
mode exactlyonce Garantia de entrega para o coletor de memória. exactlyonce usa o modo de microlote com semântica exatamente uma vez. atleastonce usa o modo contínuo com semântica pelo menos uma vez. Valores válidos: exactlyonce, atleastonce.

Opções de função do Spark

Algumas funções internas do Spark SQL aceitam um options mapa que controla o comportamento de análise ou serialização. Passe opções como um Python dict ou um Scala Map[String, String].

Example

O exemplo a seguir analisa uma coluna JSON ao descartar registros 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 do Avro aceitam as mesmas opções que as opções de DataFrame correspondentes:

Example

O exemplo a seguir decodifica uma coluna do Avro com a evolução do esquema habilitada:

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 Registro de Esquema e from_avroto_avro as seguintes opções são aceitas:

Chave Default Description
schemaId None ID de esquema do Registro de Esquema do Confluent a ser usado ao decodificar dados do Avro que foram 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 Registro de Esquema do Confluent. Passe qualquer propriedade de cliente Confluent SR usando esse prefixo, por exemplo confluent.schema.registry.basic.auth.user.info , para credenciais básicas de autenticação. Necessário para as variantes do Registro de Esquema de from_avro e to_avro.

CSV

As funções CSV aceitam as mesmas opções que as opções de DataFrame correspondentes:

Example

O exemplo a seguir lê 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 de DataFrame correspondentes:

Example

O exemplo a seguir grava JSON com NULL campos ignorados e formatação bastante habilitada:

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 use um DataSource baseado em arquivo. Os dados do Protobuf são sempre lidos e gravados como colunas binárias usando essas funções. As opções são passadas como um Map[String, String] e diferenciam maiúsculas de minúsculas.

Example

O exemplo a seguir decodifica uma coluna Protobuf usando o modo PERMISSIVE:

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 usam as seguintes opções:

Chave Default Description
mode FAILFAST Como lidar com registros corrompidos. FAILFAST gera uma exceção. PERMISSIVE define campos malformados como nulos. Valores válidos: FAILFAST, PERMISSIVE. Aplica-se a from_protobuf.
recursive.fields.max.depth -1 (desabilitado) Profundidade máxima de recursão para campos protobuf recursivos. Defina para desativar o suporte ao 0 campo recursivo. Valores válidos: 0 para 10. Aplica-se a from_protobuf.
convert.any.fields.to.json false Se os campos protobuf Any devem ser convertidos em uma cadeia de caracteres JSON em vez de um STRUCT. Aplica-se a from_protobuf.
emit.default.values false Se deseja emitir campos com valores zero ou padrão (semântica proto3). Quando falseos campos com valores padrão são omitidos da saída. Aplica-se a from_protobuf.
enums.as.ints false Se deseja renderizar campos enumerados como valores inteiros em vez de cadeias de caracteres. Aplica-se a from_protobuf.
upcast.unsigned.ints false Seja para upcast uint32 para Long e uint64 para Decimal(20,0) evitar o estouro inteiro. Aplica-se a from_protobuf.
unwrap.primitive.wrapper.types false Se deseja desembrulhar google.protobuf tipos de wrapper (por exemplo, Int32Value e StringValue) para seus tipos spark primitivos correspondentes. Aplica-se a from_protobuf.
retain.empty.message.types false Se deseja manter tipos de mensagem Protobuf vazios no esquema de saída inserindo uma coluna fictícia. Aplica-se a from_protobuf.
schema.registry.subject None Nome da entidade do Registro de Esquema. Necessário ao usar as variantes do Registro de Esquema de from_protobuf e to_protobuf.
schema.registry.address None Endereço do Registro de Esquema (host e porta). Necessário ao usar as variantes do Registro de Esquema de from_protobuf e to_protobuf.
schema.registry.protobuf.name None Especifica qual mensagem protobuf usar quando o assunto do registro de esquema contém várias mensagens. Optional.

XML

As funções XML aceitam as mesmas opções que as opções de DataFrame correspondentes:

Example

O exemplo a seguir grava XML com marcas de linha e raiz 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")))