Pular para o conteúdo principal

Referência de opçõesSpark API

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

Opções do DataFrameReader

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

Exemplo

O exemplo a seguir define multiLine como True para leitura de arquivos JSON:

Python
df = spark.read.format("json").option("multiLine", True).load("/path/to/data")

Comum

As seguintes opções se aplicam a todos os formatos de arquivo.

Chave

Padrão

Valores válidos

Descrição

ignoreCorruptFiles

false

true, false

Se deve ignorar ou não os arquivos corrompidos. Se isso for verdade, o trabalho Spark continuará a ser executado ao encontrar arquivos corrompidos e o conteúdo que já foi lido ainda será retornado. Para COPY INTO, você pode observar arquivos corrompidos ignorados como numSkippedCorruptFiles na coluna operationMetrics do histórico do Delta Lake . Disponível no Databricks Runtime 11.3 LTS e versões superiores.

ignoreMissingFiles

false Para Auto Loader, true para COPY INTO (legado)

true, false

Se deve ignorar ou não os ficheiros em falta. Se isso for verdade, o trabalho Spark continuará a ser executado mesmo ao encontrar arquivos ausentes e o conteúdo ainda será retornado. Disponível no Databricks Runtime 11.3 LTS e versões superiores.

modifiedAfter

Nenhuma

Uma sequência de carimbo de data/hora

Um carimbo de data e hora opcional como um filtro para ingerir apenas arquivos que têm um carimbo de data e hora de modificação posterior ao carimbo de data e hora especificado.

modifiedBefore

Nenhuma

Uma sequência de carimbo de data/hora

Um carimbo de data e hora opcional como filtro para ingerir apenas arquivos que tenham um carimbo de data e hora de modificação antes do carimbo de data/hora especificado.

pathGlobFilter ou fileNamePattern

Nenhuma

Uma string de padrão de glob

Um possível padrão global para escolher arquivos. Equivalente a PATTERN em COPY INTO (legado). fileNamePattern pode ser usado em read_files.

recursiveFileLookup

false

true, false

Quando true, esta opção pesquisa em diretórios aninhados mesmo que seus nomes não sigam um esquema de nomenclatura de partição como date=2019-07-01.

Avro

As opções a seguir se aplicam ao ler arquivos Avro.

Chave

Padrão

Valores válidos

Descrição

avroSchema

Nenhuma

String de esquema Avro

Esquema opcional especificado por um usuário no formato Avro. Ao ler o Avro, essa opção pode ser definida como um esquema evoluído que é compatível, mas diferente do esquema real do Avro. O esquema de desserialização é consistente com o esquema evoluído. Por exemplo, caso se defina 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

none, restart

Como lidar com a evolução do esquema ao utilizar um registro de esquema. none ignora alterações de esquema e continua o job. restart gera um UnknownFieldException quando alterações de esquema são detectadas e exige a reinicialização do Job.

datetimeRebaseMode

LEGACY

EXCEPTION, LEGACY, CORRECTED

Controla o rebase dos valores de DATA e TIMESTAMP entre calendários gregorianos julianos e prolóticos.

enableStableIdentifiersForUnionType

false

true, false

Se deve ou não utilizar nomes de campo estáveis para os tipos Avro Union. Quando ativado, os nomes dos campos do tipo união são derivados de seus nomes de tipo em minúsculas (por exemplo, member_int, member_string). Lança uma exceção se dois nomes de tipo forem idênticos após a conversão para minúsculas.

mergeSchema

false

true, false

Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. mergeSchema para Avro não relaxa os tipos de dados.

mode

FAILFAST

FAILFAST, PERMISSIVE, DROPMALFORMED

Modo analisador para trabalhar com registros corrompidos. FAILFAST lança uma exceção. PERMISSIVE define campos malformados como nulo. DROPMALFORMED ignora silenciosamente registros ruins.

readerCaseSensitive

true

true, false

Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando rescuedDataColumn está ativado. Se verdadeiro, recupere as colunas de dados cujos nomes diferem em maiúsculas e minúsculas do esquema. Quando falso, leia os dados sem diferenciar maiúsculas de minúsculas.

recursiveFieldMaxDepth

Nenhuma

0 to 15

A profundidade máxima de recursão para campos Avro recursivos. Defina como 1 para truncar todos os campos recursivos, 2 para permitir um nível de recursão e assim por diante até 15. Quando não definido ou 0, campos recursivos não são permitidos.

rescuedDataColumn

Nenhuma

Uma string de nome de coluna

Determinar se todos os dados que não puderam ser analisados devido a: incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader.

COPY INTO (legado) não suporta a coluna de dados recuperados porque você não pode definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão.

Para obter mais detalhes, consulte O que é a coluna de dados recuperados?

stableIdentifierPrefixForUnionType

member_

Qualquer cadeia de caracteres

O prefixo a ser usado para nomes de campos de tipo de união estável quando enableStableIdentifiersForUnionType=true.

CSV

As seguintes opções se aplicam ao ler arquivos CSV.

Chave

Padrão

Valores válidos

Descrição

badRecordsPath

Nenhuma

Uma string de caminho

O caminho para armazenar arquivos para registrar as informações sobre registros CSV ruins.

charToEscapeQuoteEscaping

\0

Um único caractere

O caractere usado para escapar do caractere usado para escapar das citações. Por exemplo, para o seguinte registro: [ " a\\", b ]:

  • Se o caractere para escapar do '\' não estiver definido, o registro não será analisado. O analisador lerá os caracteres: [a],[\],["],[,],[ ],[b] e lançará um erro porque não consegue encontrar uma aspa de fechamento.
  • Se o caractere para escapar do '\' for definido como '\', o registro será lido com valores de 2: [a\] e [b].

columnNameOfCorruptRecord

_corrupt_record

Uma string de nome de coluna

Compatível com Auto Loader. Não suportado para COPY INTO (legado). A coluna destinada a armazenar registros malformados que não podem ser analisados. Se o mode para análise for definido como DROPMALFORMED, esta coluna ficará vazia.

comment

\0

Um único caractere

Define o caractere que representa um comentário de linha quando encontrado no início de uma linha de texto. Use '\0' para desativar a omissão de comentários.

dateFormat

yyyy-MM-dd

Uma string de formato de data

O formato para analisar cadeias de caracteres de data.

emptyValue

Cadeias vazias

Qualquer cadeia de caracteres

Representação de string de um valor vazio.

enableDateTimeParsingFallback

false

true, false

Indica se deve recorrer ao comportamento de análise de data e hora legado quando um valor não puder ser analisado com o formato especificado. Quando false, falhas de análise geram um erro ou produzem nulo dependendo de mode.

encoding ou charset

UTF-8

Nome do(a) java.nio.charset.Charset

O nome da codificação dos arquivos CSV. Consulte java.nio.charset.Charset para obter a lista de opções. UTF-16 e UTF-32 não podem ser utilizados quando multiline é true.

enforceSchema

true

true, false

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 é ignorada por padrão ao usar o Auto Loader para resgatar dados e permitir a evolução do esquema.

escape

\

Um único caractere

O caractere de escape a ser usado ao analisar os dados.

extension

csv

Uma string de extensão de arquivo

A extensão de nome de arquivo esperada para leituras. Arquivos sem esta extensão são filtrados.

failOnUnknownFields

false

true, false

Indica se a operação deve falhar quando o registro CSV contiver colunas não presentes no esquema. Quando false, colunas não reconhecidas são descartadas silenciosamente ou recuperadas dependendo de rescuedDataColumn.

failOnWidenedFields

false

true, false

Indica se a análise deve falhar quando o valor de um campo não puder ser interpretado como o tipo de esquema declarado sem ampliação (widering). Quando false, os valores ampliados por tipo são silenciosamente recuperados dependendo de rescuedDataColumn. A configuração failOnUnknownFields=true pode mascarar os efeitos desta opção.

header

false

true, false

Se os arquivos CSV contêm um cabeçalho. O Auto Loader pressupõe que os arquivos tenham cabeçalhos ao inferir o esquema.

ignoreLeadingWhiteSpace

false

true, false

Se deve ignorar os principais espaços em branco para cada valor analisado.

ignoreTrailingWhiteSpace

false

true, false

Se devem ser ignorados os espaços em branco à direita para cada valor analisado.

inferSchema

false

true, false

Se deve inferir os tipos de dados dos registros CSV analisados ou assumir que todas as colunas são de StringType. Exige um passe adicional sobre os dados se configurado para true. Para o Auto Loader, use cloudFiles.inferColumnTypes em vez disso.

inputBufferSize

1048576 (1 MB)

Inteiros positivos

O tamanho do buffer em bytes para o analisador CSV. Útil para ajustar o uso da memória ao analisar grandes arquivos CSV.

lineSep

Nenhum, que abrange \r, \r\n e \n

Uma string

Uma string entre dois registros CSV consecutivos.

locale

US

Um identificador java.util.Locale

Uma localidade Java identificada que afeta a data padrão, o carimbo de data e a análise decimal dentro do CSV.

maxCharsPerColumn

-1

Números inteiros positivos, ou -1 para ilimitado

Número máximo de caracteres esperado de um valor para analisar. Pode ser usado para evitar erros de memória. O padrão é -1, o que significa ilimitado.

maxColumns

20480

Inteiros positivos

O limite rígido de quantas colunas um registro pode ter.

mergeSchema

false

true, false

Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. Habilitado por padrão para o Auto Loader ao inferir o esquema.

mode

PERMISSIVE

PERMISSIVE, DROPMALFORMED, FAILFAST

Modo de analisador para trabalhar com registros malformados.

multiLine

false

true, false

Se os registros CSV abrangem várias linhas.

nanValue

NaN

Qualquer cadeia de caracteres

A representação de string de um valor não numérico ao analisar colunas FloatType e DoubleType .

negativeInf

-Inf

Qualquer cadeia de caracteres

A representação de string do infinito negativo ao analisar colunas FloatType ou DoubleType.

nullValue

Cadeias vazias

Qualquer cadeia de caracteres

Representação de string de um valor nulo.

parserCaseSensitive (obsoleto)

false

true, false

Durante a leitura de arquivos, verifique se as colunas declaradas no cabeçalho devem ser alinhadas com o esquema com diferenciação de maiúsculas e minúsculas. Isso é true por padrão para o Auto Loader. As colunas que diferem por maiúsculas e minúsculas serão resgatadas no rescuedDataColumn se habilitadas. Esta opção foi preterida a favor de readerCaseSensitive.

positiveInf

Inf

Qualquer cadeia de caracteres

A representação de string do infinito positivo ao analisar colunas FloatType ou DoubleType.

preferDate

true

true, false

Tenta inferir strings 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 Auto Loader.

quote

"

Um único caractere

O caractere usado para escapar de valores onde o delimitador de campo faz parte do valor.

readerCaseSensitive

true

true, false

Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando rescuedDataColumn está ativado. Se verdadeiro, recupere as colunas de dados cujos nomes diferem em maiúsculas e minúsculas do esquema. Quando falso, leia os dados sem diferenciar maiúsculas de minúsculas.

rescuedDataColumn

Nenhuma

Uma string de nome de coluna

Determinar se todos os dados que não puderam ser analisados devido a: incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados recuperados?

COPY INTO (legado) não suporta a coluna de dados recuperados porque você não pode definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão.

sep ou delimiter

,

Uma string

A string separadora entre colunas.

singleVariantColumn

Nenhuma

Uma string de nome de coluna

Quando definido para um nome de coluna, lê o registro CSV inteiro em uma única coluna VariantType com esse nome, em vez de analisar cada campo em sua própria coluna. Requer header=true.

skipRows

0

Números inteiros positivos ou 0

O número de linhas do início do arquivo CSV que devem ser ignoradas, incluindo linhas comentadas e vazias. Se header for verdadeiro, o cabeçalho será a primeira linha não ignorada e não comentada.

timeFormat

HH:mm:ss

Uma cadeia de caracteres de formato de tempo

O formato para analisar os valores da coluna TimeType .

timestampFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]

Uma string de formato de carimbo de data/hora

O formato para analisar cadeias de caracteres de carimbo de data/hora.

timestampNTZFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS]

Uma string de formato de carimbo de data/hora

O formato para analisar timestamps sem fuso horário (TimestampNTZType) strings.

timeZone

Nenhuma

Uma sequência java.time.ZoneId.

O java.time.ZoneId a ser usado ao analisar carimbos de data/hora e datas.

unescapedQuoteHandling

STOP_AT_DELIMITER

STOP_AT_CLOSING_QUOTE, BACK_TO_DELIMITER, STOP_AT_DELIMITER, SKIP_VALUE, RAISE_ERROR

A estratégia para lidar com cotações sem escape. O comportamento de cada opção permitida é o seguinte:

  • STOP_AT_CLOSING_QUOTE: Caso sejam encontradas aspas não escapadas na entrada, acumule o caractere de aspas e continue a análise do valor como um valor entre aspas, até encontrar uma aspa de fechamento.
  • BACK_TO_DELIMITER: Se citações sem formato forem encontradas na entrada, considere o valor como um valor sem aspas. Isto fará com que o analisador acumule todos os caracteres do valor analisado atual até que o delimitador definido por sep seja localizado. Se nenhum delimitador for encontrado no valor, o analisador continuará acumulando caracteres da entrada até encontrar um delimitador ou o fim da linha.
  • STOP_AT_DELIMITER: Se citações sem formato forem encontradas 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 um final de linha seja encontrado na entrada.
  • SKIP_VALUE: Se citações sem formato 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 forem encontradas aspas sem escape na entrada, um TextParsingException será lançado.

Excel

As seguintes opções se aplicam ao ler arquivos Excel.

Chave

Padrão

Valores válidos

Descrição

dataAddress

Nenhuma

Um intervalo de células ou uma string com o nome da planilha

O intervalo de células a ser lido na sintaxe do Excel. 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 para ler um intervalo da primeira planilha ou SheetName para ler todos os dados de uma planilha específica.

headerRows

0

0, 1

Número de linhas iniciais a serem usadas como cabeçalhos de nomes de coluna. Quando dataAddress é especificado, isso se aplica dentro do intervalo de células. Quando 0, os nomes das colunas são gerados automaticamente como _c1, _c2, _c3, etc.

ignoreMissingSheet

false

true, false

Se é para ignorar silenciosamente os arquivos que não contêm a planilha especificada por dataAddress. Quando false, ocorre um erro se um arquivo não tiver a planilha solicitada. Aplica-se somente quando um nome de planilha é especificado em dataAddress.

includePhoneticRuns

false

true, false

Se deve incluir anotações fonéticas (como pinyin ou furigana) concatenadas aos valores de strings da célula ao ler arquivos XLSX.

operation

readSheet

readSheet, listSheets

A operação a ser realizada na pasta de trabalho do Excel. readSheet lê dados de uma planilha. listSheets retorna uma estrutura com os campos sheetIndex: long e sheetName: String para cada planilha.

timestampNTZFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS]

Uma string de formato de carimbo de data/hora

Cadeias de formatação personalizadas para valores de carimbo de data/hora sem fuso horário armazenados como strings no Excel. Os formatos de data personalizados seguem os formatos definidos em Datetime patterns.

dateFormat

yyyy-MM-dd

Uma string de formato de data

Cadeias de formato personalizadas para valores de string lidos como Date. Os formatos de data personalizados seguem os formatos definidos em Datetime patterns.

JSON

As seguintes opções se aplicam ao ler arquivos JSON.

Chave

Padrão

Valores válidos

Descrição

allowBackslashEscapingAnyCharacter

false

true, false

Se deve permitir que barras invertidas () sejam usadas para escapar qualquer caractere que a suceda.Se não estiver habilitado, somente caracteres que são explicitamente listados pela especificação JSON podem ser escapados.

allowComments

false

true, false

Se deve permitir ou não o uso de comentários no estilo Java, C e C++ (variedades '/', '*' e '//') no conteúdo analisado.

allowNonNumericNumbers

true

true, false

Se o conjunto de tokens não é um número (NaN) deve ser permitido como valores numéricos flutuantes legais.

allowNumericLeadingZeros

false

true, false

Se é permitido permitir que números inteiros comecem com zeros adicionais (ignoráveis) (por exemplo, 000001).

allowSingleQuotes

true

true, false

Se deve ser permitido o uso de aspas simples (apóstrofo, caractere '\') para citar strings (nomes e valores de String).

allowUnquotedControlChars

false

true, false

Permitir ou não que as strings JSON contenham caracteres de controle sem escape (caracteres ASCII com valor menor que a 32, incluindo caracteres de tabulação e de avanço de linha).

allowUnquotedFieldNames

false

true, false

Se deve ser permitido o uso de nomes de campos sem aspas, o que é permitido pelo JavaScript, mas não pela especificação JSON.

alternateVariantEncoding

Nenhuma

Z85

A codificação usada para os valores Variant no JSON de origem. Defina como Z85 para decodificar valores Variant que foram codificados em Base85 em vez de armazenados como JSON embutido.

badRecordsPath

Nenhuma

Uma string de caminho

O caminho para armazenar arquivos que registram informações sobre registros JSON inválidos.

O uso da opção badRecordsPath em uma fonte de dados baseada em arquivo apresenta as seguintes limitações:

  • Não é transacional e pode levar a resultados inconsistentes.
  • Erros transitórios são tratados como falhas.

columnNameOfCorruptRecord

_corrupt_record

Uma string de nome de coluna

A coluna para armazenar registros que estão malformados e não podem ser analisados. Se o mode para análise estiver definido como DROPMALFORMED, esta coluna estará vazia.

dateFormat

yyyy-MM-dd

Uma string de formato de data

O formato para analisar cadeias de caracteres de data.

dropFieldIfAllNull

false

true, false

Se deve ignorar colunas de todos os valores nulos ou matrizes e estruturas vazias durante a inferência do esquema.

encoding ou charset

UTF-8

Nome do(a) java.nio.charset.Charset

O nome da codificação dos arquivos JSON. Consulte java.nio.charset.Charset para obter uma lista de opções. Você não pode usar UTF-16 e UTF-32 quando multiline for true.

inferTimestamp

false

true, false

Se deve tentar inferir strings de carimbo de data/hora como TimestampType. Quando definido como true, a inferência de esquema pode demorar consideravelmente mais. Você deve habilitar cloudFiles.inferColumnTypes para usar com o Auto Loader.

lineSep

Nenhum, que abrange \r, \r\n e \n

Uma string

Uma string entre dois registros JSON consecutivos.

locale

US

Um identificador java.util.Locale

Um identificador de localidade Java que afeta a data padrão, o carimbo de data/hora e a análise decimal dentro do JSON.

maxNestingDepth

500

Inteiros positivos

A profundidade máxima de aninhamento permitida para objetos e matrizes JSON. Aumente este valor para documentos profundamente aninhados.

maxNumLen

1000

Inteiros positivos

O comprimento máximo de tokens numéricos na entrada JSON. Aumente este valor para JSON com grandes literais numéricos.

maxStringLen

Ilimitadas

Inteiros positivos

O comprimento máximo de valores de string na entrada JSON. Configurado para limitar o uso da memória na análise de JSON com strings grandes.

mode

PERMISSIVE

PERMISSIVE, DROPMALFORMED, FAILFAST

Modo de analisador para trabalhar com registros malformados.

multiLine

false

true, false

Se os registros JSON abrangem múltiplas linhas.

prefersDecimal

false

true, false

Tenta inferir strings como DecimalType ao invés de float ou tipo duplo quando possível. Você também deve usar a inferência de esquema, habilitando inferSchema ou usando cloudFiles.inferColumnTypes com o Auto Loader.

primitivesAsString

false

true, false

Se inferir tipos primitivos como números e booleanos como StringType.

readerCaseSensitive

true

true, false

Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando rescuedDataColumn está ativado. Se verdadeiro, recupere as colunas de dados cujos nomes diferem em maiúsculas e minúsculas do esquema. Quando falso, leia os dados sem diferenciar maiúsculas de minúsculas. Disponível no Databricks Runtime 13.3 e versões superiores.

rescuedDataColumn

Nenhuma

Uma string de nome de coluna

Decidiu-se se todos os dados que não puderam ser analisados devido a uma incompatibilidade de tipo de dados ou de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados recuperados?

COPY INTO (legado) não suporta a coluna de dados recuperados porque você não pode definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão.

singleVariantColumn

Nenhuma

Uma string de nome de coluna

Determina se é para ingerir o documento JSON inteiro, analisado em uma única coluna Variant com a string especificada como o nome da coluna. Se não definido, os campos JSON são ingeridos em suas próprias colunas.

timestampFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]

Uma string de formato de carimbo de data/hora

O formato para analisar cadeias de caracteres de carimbo de data/hora.

timestampNTZFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS]

Uma string de formato de carimbo de data/hora

O formato para analisar timestamps sem fuso horário (TimestampNTZType) strings.

timeZone

Nenhuma

Uma sequência java.time.ZoneId.

O java.time.ZoneId a ser usado ao analisar carimbos de data/hora e datas.

upgradeExceptionAsBadRecord

false

true, false

Definir se as exceções de atualização de tipo (por exemplo, quando um valor não pode ser ampliado para o tipo de coluna declarado) devem ser tratadas como registros inválidos em vez de lançar uma exceção.

Kafka

Para obter a lista completa de opções do leitor Kafka, consulte Opções do DataStreamReader Kafka. As seguintes opções aplicam-se apenas a lotes reads usando spark.read.format("kafka").

Chave

Padrão

Valores válidos

Descrição

endingOffsets

latest

latest, ou uma string JSON de deslocamento

Onde parar de ler. Na sequência JSON, -1 é o deslocamento mais recente. -2, que é o deslocamento mais antigo, não é permitido como um deslocamento final. Esta é uma string JSON de deslocamento de exemplo: {"topicA":{"0":50,"1":-1}}.

endingOffsetsByTimestamp

Nenhuma

Uma string de timestamp JSON

Deslocamentos finais por partição especificados como carimbos de data/hora em milissegundos. Por exemplo: {"topicA":{"0":2000,"1":3000}}.

endingTimestamp

Nenhuma

Números inteiros positivos ou 0

Carimbo de data/hora final global em milissegundos aplicado a todas as partições.

ORC

As seguintes opções se aplicam ao ler arquivos ORC.

Chave

Padrão

Valores válidos

Descrição

mergeSchema

false

true, false

Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo.

Parquet

As seguintes opções aplicam-se na leitura de arquivos Parquet.

Chave

Padrão

Valores válidos

Descrição

datetimeRebaseMode

LEGACY

EXCEPTION, LEGACY, CORRECTED

Controla o rebase dos valores de DATA e TIMESTAMP entre calendários gregorianos julianos e prolóticos.

int96RebaseMode

LEGACY

EXCEPTION, LEGACY, CORRECTED

Controla a rebase dos valores de carimbo de data/hora INT96 entre os calendários Juliano e Gregoriano Proléptico.

mergeSchema

false

true, false

Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo.

readerCaseSensitive

true

true, false

Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando rescuedDataColumn está ativado. Se verdadeiro, recupere as colunas de dados cujos nomes diferem em maiúsculas e minúsculas do esquema. Quando falso, leia os dados sem diferenciar maiúsculas de minúsculas.

rescuedDataColumn

Nenhuma

Uma string de nome de coluna

Determinar se todos os dados que não puderam ser analisados devido a: incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados recuperados?

COPY INTO (legado) não suporta a coluna de dados recuperados porque você não pode definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão.

armazenamento do estado

Use estas opções com spark.read.format("statestore") ou a função de valor de tabela read_statestore para ler dados de estado de transmissão estruturada. Ver Ler informação estatal de transmissão estruturada.

Chave

Padrão

Valores válidos

Descrição

batchId

ID dos lotes mais recentes

Números inteiros positivos ou 0

O lote de destino para leitura. Utilizar para consultar um estado anterior da query. O lote deve ser confirmado, mas ainda não limpo.

operatorId

0

Números inteiros positivos ou 0

O operador de destino do qual ler. Utilize quando a consulta tiver múltiplos operadores com estado.

storeName

DEFAULT

Qualquer cadeia de caracteres

O nome do armazenamento do estado de destino a ser lido. Utilize quando o operador com estado tiver várias instâncias de armazenamento do estado. Você deve especificar storeName ou joinSide para um join de transmissão-transmissão, mas não ambos.

joinSide

Nenhuma

left, right

O lado de destino para leitura em um join de transmissão-transmissão. Você deve especificar ou storeName ou joinSide para um join de transmissão-transmissão, mas não ambos.

snapshotStartBatchId

Nenhuma

Números inteiros positivos ou 0

O ID do lote do Snapshot a ser usado como ponto de partida ao se ler o estado. O leitor reconstrói o estado reproduzindo alterações a partir deste Snapshot até batchId. Útil quando um Snapshot está corrompido. Deve ser especificado junto com snapshotPartitionId. Não pode ser usado com readChangeFeed. Compatível com o armazenamento do estado baseado em HDFS e o armazenamento do estado do RocksDB com o ponto de verificação de log de alterações ativado. Disponível no Databricks Runtime 15.4 LTS e acima.

snapshotPartitionId

Nenhuma

Números inteiros positivos ou 0

Se especificado, a consulta lê apenas esta partição. Deve especificar junto com snapshotStartBatchId. Não pode ser usado com readChangeFeed. Disponível no Databricks Runtime 15.4 LTS e acima.

readChangeFeed

false

true, false

Quando true, retorna as alterações de estado em um intervalo especificado de lotes entre changeStartBatchId e changeEndBatchId. Requer changeStartBatchId. Não pode ser usado com joinSide, batchId, snapshotStartBatchId ou snapshotPartitionId. Disponível no Databricks Runtime 16.4 LTS e acima.

Para obter detalhes, consulte Ler alterações de estado da transmissão estruturada.

changeStartBatchId

Nenhuma

Números inteiros positivos ou 0

O ID inicial do lote para o intervalo do feed de dados alterados. Obrigatório quando readChangeFeed for true. Aplica-se somente quando readChangeFeed está definido como true. Disponível no Databricks Runtime 16.4 LTS e acima.

changeEndBatchId

ID dos lotes mais recentes

Números inteiros positivos ou 0

O ID final do lote para o intervalo do feed de dados alterados. Deve ser maior ou igual a changeStartBatchId. Aplica-se somente quando readChangeFeed está definido como true. Disponível no Databricks Runtime 16.4 LTS e acima.

stateVarName

Nenhuma

Qualquer cadeia de caracteres

O nome da variável de estado para ler O nome da variável de estado é o nome exclusivo de cada variável dentro da função init de um StatefulProcessor usada pelo operador transformWithState. Necessário ao usar o operador transformWithState. Disponível no Databricks Runtime 16.4 LTS e acima.

readRegisteredTimers

false

true, false

Quando true, lê os temporizadores registrados usados pelo operador transformWithState. Aplica-se somente ao operador transformWithState. Disponível no Databricks Runtime 16.4 LTS e acima.

flattenCollectionTypes

true

true, false

Quando true, achata os registros retornados para variáveis de estado de mapa e lista. Quando false, retorna registros como um Spark SQL Array ou Map. Aplica-se somente ao transformWithState operador. Disponível no Databricks Runtime 16.4 LTS e acima.

Texto

As seguintes opções se aplicam na leitura de arquivos de texto.

Chave

Padrão

Valores válidos

Descrição

encoding

UTF-8

Nome do(a) java.nio.charset.Charset

O nome da codificação do separador de linha do arquivo TEXT. O conteúdo do arquivo não é afetado por esta opção e é lido como está.

lineSep

Nenhum, que abrange \r, \r\n e \n

Uma string

Uma string entre dois registros TEXT consecutivos.

wholeText

false

true, false

Se deve ler um arquivo como um único registro.

XML

As seguintes opções se aplicam ao ler arquivos XML.

Chave

Padrão

Valores válidos

Descrição

rowTag

Nenhuma

Qualquer cadeia de caracteres

A tag de linha dos arquivos XML a serem tratados como uma linha. No exemplo XML <book> <page><page>...<book>, o valor apropriado é page. Esta é uma opção obrigatória.

samplingRatio

1.0

0.0 to 1.0

Define uma fração de linhas usadas para inferência de esquema. As funções integradas de XML ignoram esta opção.

excludeAttribute

false

true, false

Se deve ou não excluir atributos dos elementos.

mode

Nenhuma

PERMISSIVE, DROPMALFORMED, FAILFAST

Mode para lidar com registros corrompidos durante a análise.

  • PERMISSIVE: Para registros corrompidos, coloca a string malformada em um campo configurado por columnNameOfCorruptRecord, e define os campos malformados como null. Para manter registros corrompidos, você pode 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 são descartados durante a análise. Ao inferir um esquema, o analisador adiciona implicitamente um campo columnNameOfCorruptRecord em um esquema de saída.
  • DROPMALFORMED: ignorar registros corrompidos. Este modo não é compatível para funções XML integradas.
  • FAILFAST: O analisador lança uma exceção quando encontra registros corrompidos.

inferSchema

true

true, false

Se true, tenta inferir um tipo apropriado para cada coluna do DataFrame resultante. Se false, todas as colunas resultantes são do tipo string . As funções integradas XML ignoram esta opção.

columnNameOfCorruptRecord

spark.sql.columnNameOfCorruptRecord

Uma string de nome de coluna

Permite renomear o novo campo que contém strings malformadas criadas pelo modo PERMISSIVE .

attributePrefix

Nenhuma

Qualquer cadeia de caracteres

O prefixo dos atributos serve para diferenciá-los dos elementos. Este será o prefixo para os nomes dos campos. O valor padrão é _. Pode estar vazio para leitura de XML, mas não para escrita. Isso também se aplica às opções XML do DataFrameWriter.

valueTag

_VALUE

Qualquer cadeia de caracteres

A tag usada para os dados de caracteres dentro de elementos que também possuem atributos ou elementos filhos. O usuário pode especificar o campo valueTag no esquema ou ele será adicionado automaticamente durante a inferência do esquema quando dados de caracteres estiverem presentes em elementos com outros elementos ou atributos. Isso também se aplica às opções XML do DataFrameWriter.

encoding

UTF-8

Nome do(a) java.nio.charset.Charset

Para leitura, decodifica os arquivos XML de acordo com o tipo de codificação fornecido. Para escrita, especifica a codificação (conjunto de caracteres) dos arquivos XML salvos. As funções integradas XML ignoram esta opção. Isso também se aplica às opções XML do DataFrameWriter.

ignoreSurroundingSpaces

true

true, false

Se os espaços em branco ao redor dos valores devem ser ignorados. Os dados de caracteres compostos apenas por espaços em branco são ignorados.

rowValidationXSDPath

Nenhuma

Uma string de caminho do arquivo

Caminho para um arquivo XSD opcional usado para validar o XML para cada linha individualmente. Linhas que falham na validação são tratadas como erros de análise. O XSD não afeta o esquema, seja especificado ou inferido.

ignoreNamespace

false

true, false

Se true, os prefixos de namespaces em elementos e atributos XML são ignorados. As tags <abc:author> e <def:author>, por exemplo, são tratadas como se ambas fossem apenas <author>. Os namespaces não podem ser ignorados no elemento rowTag , apenas seus filhos de leitura. A análise XML não leva em consideração o namespace, mesmo se false.

timestampFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]

Uma string de formato de carimbo de data/hora

Cadeias de formato de carimbo de data/hora personalizadas que seguem o padrão de formato de data e hora . Isso se aplica ao tipo timestamp . Isso também se aplica às opções XML do DataFrameWriter.

timestampNTZFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS]

Uma string de formato de carimbo de data/hora

Cadeias de formato personalizadas para carimbo de data/hora sem fuso horário, seguindo o formato de padrão de data e hora. Isso se aplica ao tipo TimestampNTZType. Isso também se aplica às opções XML do DataFrameWriter.

dateFormat

yyyy-MM-dd

Uma string de formato de data

Cadeias de formato de data personalizadas que seguem o padrão de data e hora . Isso se aplica ao tipo de data. Isso também se aplica às opções XML do DataFrameWriter.

locale

en-US

Uma tag de idioma IETF BCP 47

Define uma localidade como uma tag de idioma no formato IETF BCP 47. Por exemplo, locale é usado ao analisar datas e carimbos de data/hora.

nullValue

string null

Qualquer cadeia de caracteres

Define a representação em string de um valor nulo. Quando este valor é null, o analisador não grava atributos e elementos para os campos. Isso também se aplica às opções XML do DataFrameWriter.

readerCaseSensitive

true

true, false

Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando rescuedDataColumn está habilitado. Se verdadeiro, recupere as colunas de dados cujos nomes diferem em maiúsculas e minúsculas do esquema. Quando falso, leia os dados sem diferenciar maiúsculas de minúsculas.

rescuedDataColumn

Nenhuma

Uma string de nome de coluna

Determinar se todos os dados que não puderam ser analisados devido a uma incompatibilidade de tipo de dados e de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados recuperados?. COPY INTO (legado) não suporta a coluna de dados recuperados porque você não pode definir manualmente o esquema usando COPY INTO. A Databricks recomenda o uso do Auto Loader para a maioria dos cenários de ingestão.

singleVariantColumn

none

Uma string de nome de coluna

Especifica o nome da coluna variante única. Se esta opção for especificada para leitura, analise o registro XML completo em uma única coluna do tipo Variant com o valor da string da opção fornecida como o nome da coluna. Se esta opção for especificada para escrita, escreve o valor da coluna de variante única em arquivos XML. Também se aplica a opções XML do DataFrameWriter.

useLegacyXMLParser

true

true, false

Se deve ser utilizado o analisador XML legado. O analisador sintático legado possui uma validação menos rigorosa para conteúdo malformado, mas é menos eficiente em termos de memória. Defina como false para optar pelo analisador default mais rigoroso.

wildcardColName

xs_any

Uma string de nome de coluna

O nome da coluna usada para capturar elementos XML que correspondem ao elemento de esquema curinga (xs:any). Não pode ser usado em conjunto com rescuedDataColumn.

Opções do DataStreamReader

Use estas opções com DataStreamReader.option() para configurar leituras de transmissão de tabelas Delta Lake e outras fontes baseadas em arquivos.

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

Para opções de Auto Loader (cloudFiles.*), consulte Auto Loader.

Exemplo

O exemplo a seguir define maxFilesPerTrigger como 10 para uma tabela Delta Lake :

Python
df = spark.readStream.format("delta").option("maxFilesPerTrigger", 10).load("/path/to/delta-table")

Comum

As seguintes opções aplicam-se às tabelas Delta Lake e a outras fontes de transmissão baseadas em ficheiros.

Chave

Padrão

Valores válidos

Descrição

cleanSource

off

off, delete, archive

Como lidar com arquivos de origem após serem processados pela transmissão. off não toma nenhuma ação. delete exclui permanentemente o arquivo de origem. archive move o arquivo para sourceArchiveDir. Quando definido como archive, sourceArchiveDir também deve ser definido. Não se aplica à transmissão de tabela Delta Lake.

fileNameOnly

false

true, false

Se os arquivos já processados devem ser identificados apenas pelo nome do arquivo, em vez do caminho completo. Quando true, 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 à transmissão da tabela Delta Lake .

latestFirst

false

true, false

Se os arquivos modificados mais recentemente devem ser processados primeiro dentro de cada microlote. Útil quando você deseja processar os dados mais recentes o mais rápido possível. Quando true e maxFilesPerTrigger ou maxBytesPerTrigger estão definidos, maxFileAge é ignorado. Não se aplica à transmissão da tabela Delta Lake .

maxBytesPerTrigger

Nenhuma

Inteiros positivos

Um limite máximo flexível para a quantidade de dados processada em cada micro-lote. Um lote pode processar mais do que o limite se a menor unidade de entrada o exceder. Quando usado junto com maxFilesPerTrigger, o micro-batch processa dados até que um dos limites seja atingido primeiro.

Para o Auto Loader, use cloudFiles.maxBytesPerTrigger em vez disso. Ver Comum.

maxCachedFiles

10000

Números inteiros positivos ou 0

Número máximo de arquivos não processados para armazenar em cache para micro-lotes subsequentes. Defina como 0 para desativar o cache. Aumente este valor quando o diretório de origem contiver muitos arquivos novos para cada acionamento. Não se aplica à transmissão de tabela Delta Lake.

maxFileAge

7d

Uma string de duração, como 7d ou 4h

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 do que este limite serão ignorados. Ignorado quando latestFirst for true e maxFilesPerTrigger ou maxBytesPerTrigger for definido. Não se aplica à transmissão de tabela Delta Lake.

maxFilesPerTrigger

1000 Para Delta Lake e Auto Loader. Não há limite máximo para outras fontes baseadas em arquivos.

Inteiros positivos

Limite superior para o número de novos arquivos processados em cada micro lote. Quando usado junto com maxBytesPerTrigger, o micro-batch processa dados até que um dos limites seja atingido primeiro.

Para o Auto Loader, use cloudFiles.maxFilesPerTrigger em vez disso. Ver Comum.

sourceArchiveDir

Nenhuma

Uma string de caminho

Caminho para o diretório de arquivos quando cleanSource é definido como archive. Os arquivos de origem são movidos para este caminho após o processamento, preservando sua estrutura de diretórios relativa. Não se aplica à transmissão da tabela Delta Lake .

Auto Loader

Use estas opções com a fonte cloudFiles para configurar Auto Loader para ingestão de transmissão a partir do armazenamento cloud . As opções específicas da fonte cloudFiles são prefixadas com cloudFiles para mantê-las em um espaço de nomes separado de outras opções de fonte de transmissão estruturada .

Comum

As opções a seguir aplicam-se a todas as configurações do Auto Loader.

Chave

Padrão

Valores válidos

Descrição

cloudFiles.allowOverwrites

false

true, false

Se permitir que alterações no arquivo do diretório de entrada substituam os dados existentes.

Para ressalvas sobre a configuração, consulte "O Auto Loader processa o arquivo novamente quando ele é anexado ou sobrescrito?".

cloudFiles.backfillInterval

Nenhuma

Uma string de duração, como 1 day ou 1 week

O Auto Loader pode acionar preenchimentos assíncronos em um determinado intervalo. Para obter mais informações, consulte Acionar preenchimentos retroativos regulares usando cloudFiles.backfillInterval.

Não use quando cloudFiles.useManagedFileEvents estiver definido como true.

cloudFiles.cleanSource

OFF

OFF, DELETE, MOVE

Se deve excluir ou mover automaticamente os arquivos processados do diretório de entrada. Quando definido como OFF (default), nenhum arquivo é excluído.

Quando definido como DELETE, o Auto Loader exclui automaticamente os arquivos 30 dias após serem processados. Para isso, o Auto Loader precisa ter permissões de escrita no diretório de origem.

Quando definido como MOVE, o Auto Loader move automaticamente os arquivos para o local especificado em cloudFiles.cleanSource.moveDestination 30 dias após serem processados. Para isso, o Auto Loader precisa ter permissões de escrita tanto no diretório de origem quanto no local de destino.

Um arquivo é considerado processado quando possui um valor não nulo para commit_time no resultado da função com valor de tabela cloud_files_state . Veja cloud_files_state função com valor de tabela. A espera adicional de 30 dias após o processamento pode ser configurada usando cloudFiles.cleanSource.retentionDuration.

Analise as seguintes considerações antes de ativar cloudFiles.cleanSource:

  • Databricks não recomenda o uso desta opção se houver várias transmissões consumindo dados da origem, pois o consumidor mais rápido excluirá os arquivos e eles não serão incorporados às fontes mais lentas.
  • Habilitar esse recurso exige que o Auto Loader mantenha um estado adicional em seu ponto de verificação, o que acarreta sobrecarga de desempenho, mas permite uma melhor observabilidade por meio da função com valor de tabela cloud_files_state . Veja cloud_files_state função com valor de tabela.
  • cleanSource usa a configuração atual para decidir se deve atribuir MOVE ou DELETE a um determinado arquivo. Por exemplo, suponha que a configuração era MOVE quando o arquivo foi processado originalmente, mas foi alterada para DELETE quando o arquivo se tornou um candidato à limpeza 30 dias depois. Nesse caso, o comando cleanSource irá excluir o arquivo.
  • Não há garantia de que os arquivos serão limpos assim que o retentionDuration expirar. Para manter os custos baixos, Auto Loader exclui arquivos simultaneamente ao processamento da transmissão e é encerrado assim que o processamento da transmissão for concluído ou for finalizado. Os arquivos que eram candidatos à limpeza, mas não puderam ser limpos durante o processamento da transmissão, serão coletados na próxima execução Auto Loader .

Disponível no Databricks Runtime 16.4 e versões superiores.

cloudFiles.cleanSource.retentionDuration

30 days

Uma CalendarInterval string como 14 days, 2 weeks ou 1 month

Tempo de espera antes que os arquivos processados se tornem candidatos ao arquivamento com cleanSource. Deve ser maior que 7 dias para DELETE. Não há restrição mínima para MOVE.

Disponível no Databricks Runtime 16.4 e versões superiores.

cloudFiles.cleanSource.moveDestination

Nenhuma

Um armazenamento em cloud ou caminho de volume do Unity Catalog

Caminho para arquivar os arquivos processados quando cloudFiles.cleanSource estiver definido como MOVE. Isso pode ser um caminho de armazenamento cloud ou um caminho de volumeUnity Catalog (por exemplo, /Volumes/my_catalog/my_schema/my_volume/archive/).

O local da mudança deve:

  • Não pode ser um diretório filho do diretório de origem. Se você colocar o destino da movimentação dentro do diretório de origem, os arquivos arquivados serão reinseridos.
  • Esteja no mesmo local externo, volume ou ponto de montagem DBFS que a origem. Movimentações entre buckets e contêineres não são suportadas e resultam em erro.

O Auto Loader precisa ter permissão de escrita neste diretório.

Disponível no Databricks Runtime 16.4 e versões superiores.

cloudFiles.format

Nenhuma (opção obrigatória)

avro, binaryFile, csv, json, orc, parquet, text, xml

O formato do arquivo de dados no caminho de origem. Os valores válidos incluem:

cloudFiles.includeExistingFiles

true

true, false

Se os arquivos existentes devem ser incluídos no caminho de entrada do processamento da transmissão ou se devem ser processados somente os novos arquivos que chegarem após a configuração inicial. Essa opção é avaliada somente quando você inicia uma transmissão pela primeira vez. Alterar esta opção após reiniciar a transmissão não tem efeito.

cloudFiles.inferColumnTypes

false

true, false

Se deve ou não inferir os tipos exatos das colunas ao utilizar a inferência de esquema. Por default, as colunas são inferidas como strings ao inferir conjuntos de dados JSON e CSV . Consulte a seção sobre inferência de esquema para obter mais detalhes.

cloudFiles.maxBytesPerTrigger

Nenhuma

Uma sequência de bytes como 10g

O número máximo de novos bytes a serem processados em cada gatilho. Esse é um máximo definido por software. Se você tiver arquivos de 3 GB cada, o Databricks processa 12 GB em um microlote. Quando usado junto com cloudFiles.maxFilesPerTrigger, o Databricks consome até o limite mais baixo 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() descontinuada).

No Databricks Runtime 18.0 e versões superiores, essa opção é configurada dinamicamente e não precisa ser definida manualmente.

cloudFiles.maxFileAge

Nenhuma

Uma string de duração

Por quanto tempo um evento de arquivo é rastreado para fins de desduplicação. A 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 acompanhamento de eventos de arquivo para obter mais detalhes.

Ajustar cloudFiles.maxFileAge de forma muito agressiva pode causar problemas de qualidade de dados, como ingestão duplicada ou arquivos ausentes. Portanto, a Databricks recomenda uma configuração conservadora para cloudFiles.maxFileAge, como 90 dias, que é semelhante ao que soluções comparáveis de ingestão de dados recomendam.

cloudFiles.maxFilesPerTrigger

1000

Inteiros positivos

O número máximo de novos arquivos a serem processados em cada gatilho. Quando usado junto com cloudFiles.maxBytesPerTrigger, o Databricks consome até o limite mais baixo de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, o que for atingido primeiro. Essa opção não tem efeito quando usada com Trigger.Once() (descontinuada).

No Databricks Runtime 18.0 e versões superiores, essa opção é configurada dinamicamente e não precisa ser definida manualmente.

cloudFiles.partitionColumns

Nenhuma

Uma lista separada por vírgulas de nomes de colunas

Uma lista separada por vírgulas de colunas de partição no estilo Hive, a serem inferidas a partir da estrutura de diretórios dos arquivos. Colunas de partição no estilo Hive são pares key-value 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 inferência de esquema e especificar o(a) <base-path> para carregar dados de. Se você especificar um esquema, o Auto Loader espera que estas colunas sejam incluídas no esquema. Se não desejar estas colunas como parte do seu esquema, pode especificar "" para ignorá-las. Além disso, você pode usar esta opção quando desejar que as colunas sejam inferidas do caminho do arquivo em estruturas de diretório complexas, como no exemplo abaixo:

<base-path>/year=2022/week=1/file1.csv <base-path>/year=2022/month=2/day=3/file2.csv <base-path>/year=2022/month=2/day=4/file3.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

addNewColumns quando um esquema não é especificado, none caso contrário

addNewColumns, none, rescue, failOnNewColumns

O modo de evolução do esquema à medida que novas colunas são descobertas nos dados. Por default, as colunas são inferidas como strings ao inferir um conjunto de dados JSON . Consulte a seção sobre a evolução do esquema para obter mais detalhes.

cloudFiles.schemaHints

Nenhuma

Uma string de esquema

Informações do esquema que você fornece ao Auto Loader durante a inferência do esquema. Consulte as dicas de esquema para obter mais detalhes.

cloudFiles.schemaLocation

Nenhum (necessário para inferir o esquema)

Uma string de caminho

Local para armazenar o esquema inferido e as alterações subsequentes. Consulte a seção sobre inferência de esquema para obter mais detalhes.

cloudFiles.useStrictGlobber

false

true, false

Se deve ser utilizado um globber estrito que corresponda ao comportamento de globbing default de outras fontes de arquivos no Apache Spark. Consulte Padrões comuns de carregamento de dados para obter mais detalhes. Disponível no Databricks Runtime 12.2 LTS e versões superiores.

cloudFiles.validateOptions

true

true, false

Se deve validar as opções do Auto Loader e retornar um erro para opções desconhecidas ou inconsistentes.

Listagem de diretório

A seguinte opção aplica-se ao usar o modo de listagem de diretórios.

Chave

Padrão

Valores válidos

Descrição

cloudFiles.useIncrementalListing (obsoleto)

auto no Databricks Runtime 17.2 e abaixo, false no Databricks Runtime 17.3 e acima

auto, true, false

Este recurso foi descontinuado. A Databricks recomenda o uso do modo de notificação de arquivo com eventos de arquivo em vez de cloudFiles.useIncrementalListing.

Se deve usar a listagem incremental em vez da listagem completa no modo de listagem de diretório. Por default, Auto Loader faz o possível para detectar automaticamente se um determinado diretório é aplicável à listagem incremental. Você pode usar explicitamente a listagem incremental ou usar a listagem completa do diretório definindo-a como true ou false respectivamente.

Habilitar incorretamente a listagem incremental em um diretório sem ordem lexicográfica impede que o Auto Loader descubra novos arquivos.

Funciona com o Azure Data Lake Storage (abfss://), S3 (s3://) e GCS (gs://).

Disponível no Databricks Runtime 9.1 LTSe acima.

Notificação de arquivo

Para obter informações sobre como configurar o modo de notificação de arquivos, incluindo permissões cloud necessárias, instruções de configuração e métodos de autenticação, consulte Configurar transmissões Auto Loader no modo de notificação de arquivos.

Chave

Padrão

Valores válidos

Descrição

cloudFiles.fetchParallelism

1

Inteiros positivos

Número de segmentos a serem usados ao buscar mensagens do serviço de enfileiramento.

Não use quando cloudFiles.useManagedFileEvents estiver definido como true.

cloudFiles.pathRewrites

Nenhuma

Uma string de mapa JSON

Necessário apenas se você especificar um queueUrl que recebe notificações de arquivos de vários buckets S3 e você quiser usar pontos de montagem configurados para acessar dados nesses contêineres. Use esta opção para reescrever o prefixo do caminho bucket/key com o ponto de montagem. Somente os 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 use quando cloudFiles.useManagedFileEvents estiver definido como true.

cloudFiles.resourceTag

Nenhuma

key-value tag strings

Uma série de pares de tags de valor chave para ajudar a associar e identificar recursos relacionados, por exemplo:

cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue") .option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")

Não use quando cloudFiles.useManagedFileEvents estiver definido como true. Em vez disso, defina tags de recurso usando o console do provedor cloud .

Para obter mais informações, consulte tags de recursos do provedor de serviços de cloud.

cloudFiles.useManagedFileEvents

false

true, false

Quando definido como true, o Auto Loader usa o serviço de eventos de arquivo para descobrir arquivos em seu local externo. Você pode usar essa opção somente se o caminho de carregamento estiver em um local externo com eventos de arquivo ativados. Consulte Usar o modo de notificação de arquivos com eventos de arquivos.

Os eventos de arquivo proporcionam desempenho de nível de notificação na descoberta de arquivos, pois o Auto Loader consegue descobrir novos arquivos após a última execução. Diferentemente da listagem de diretórios, esse processo não precisa listar todos os arquivos do diretório.

Existem algumas situações em que o Auto Loader usa a listagem de diretórios mesmo quando a opção de eventos de arquivo está ativada:

  • Durante o carregamento inicial, quando includeExistingFiles é definido como true, uma listagem completa do diretório é realizada para descobrir todos os arquivos que estavam presentes no diretório antes do início Auto Loader .
  • O serviço de eventos de arquivos otimiza a descoberta de arquivos armazenando em cache os arquivos criados mais recentemente. Se a execução Auto Loader for infrequente, esse cache pode expirar e Auto Loader recorrerá à listagem de diretórios para descobrir arquivos e atualizar o cache. Para evitar esse cenário, invoque o Auto Loader pelo menos uma vez a cada sete dias.

Consulte Quando o Auto Loader com eventos de arquivo usa a listagem de diretórios? Para obter uma lista completa das situações em que o Auto Loader usa a listagem de diretórios com esta opção.

Disponível no Databricks Runtime 14.3 LTS e versões superiores.

cloudFiles.listOnStart

false

true, false

Quando definido como true, Auto Loader realiza uma listagem completa do diretório quando a transmissão começa, em vez de começar com os tokens de continuação no ponto de verificação. Use esta opção para recuperar de erros, como CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Veja Como me recuperar de um erro CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN ?.

cloudFiles.useNotifications

false

true, false

Ativar ou desativar o modo de notificação de arquivos para detectar a presença de novos arquivos. Se false, use o modo de listagem de diretório. Consulte Comparar os modos de detecção de arquivos do Auto Loader.

Não use quando cloudFiles.useManagedFileEvents estiver definido como true.

Tags de recursos do provedor de cloud

O Auto Loader adiciona os seguintes pares de tags de key-value por default em uma base de melhor esforço:

  • vendor: Databricks
  • path: O local de onde os dados são carregados. Indisponível no GCP devido a limitações de rotulagem.
  • checkpointLocationLocalização do posto de controle da transmissão. Não disponível no GCP devido a limitações de rótulo.
  • streamId: um identificador globalmente exclusivo para a transmissão.

Databricks reserva esses nomes key e você não pode sobrescrever seus valores.

Para mais informações sobre a AWS, consulte Amazon SQS cost allocation tags e Como configurar tags para um tópico Amazon SNS.

específico da nuvem

O Auto Loader oferece opções para configurar a infraestrutura de nuvem para o modo de notificação de arquivo. Para as permissões necessárias da cloud e instruções de configuração, consulte Configurar transmissões do Auto Loader no modo de notificação de arquivo.

AWS

Especifique as seguintes opções somente se você escolher cloudFiles.useNotifications = true e desejar que o Auto Loader configure os serviços de notificação para você:

Chave

Padrão

Valores válidos

Descrição

cloudFiles.region

A região da instância EC2

Uma string de região da AWS

A região onde reside o bucket S3 de origem e onde você deseja criar os serviços AWS SNS e SQS.

Chave

Padrão

Valores válidos

Descrição

cloudFiles.restrictNotificationSetupToSameAWSAccountId

false

true, false

Permitir notificações de eventos somente de buckets do AWS S3 na mesma account que o tópico do SNS. Quando ativada, Auto Loader aceita apenas notificações de eventos de buckets do AWS S3 na mesma account que o tópico do SNS.

Quando false, a política de acesso não restringe as configurações de bucket e tópico SNS entreaccount diferentes. Isso é útil quando o tópico SNS e o caminho do bucket estão associados a contas diferentes.

Disponível no Databricks Runtime 17.2 e versões superiores.

Forneça a seguinte opção somente se escolher cloudFiles.useNotifications = true e quiser que o Auto Loader utilize uma fila que já tenha configurado:

Chave

Padrão

Valores válidos

Descrição

cloudFiles.queueUrl

Nenhuma

Uma string de URL

O URL da fila SQS. Se fornecido, o Auto Loader consome diretamente os eventos dessa fila em vez de configurar seus próprios serviços AWS SNS e SQS.

opções de autenticação da AWS

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

Chave

Padrão

Valores válidos

Descrição

databricks.serviceCredential

Nenhuma

Qualquer cadeia de caracteres

O nome da sua credencial de serviço do Databricks. Disponível no Databricks Runtime 16.1 e versões superiores.

Quando as credenciais de serviço do Databricks ou as IAM roles não estiverem disponíveis, você pode especificar as seguintes opções de autenticação em vez disso:

Chave

Padrão

Valores válidos

Descrição

cloudFiles.awsAccessKey

Nenhuma

Qualquer cadeia de caracteres

A ID da chave de acesso AWS para o usuário. Deve ser especificado com cloudFiles.awsSecretKey.

cloudFiles.awsSecretKey

Nenhuma

Qualquer cadeia de caracteres

A chave de acesso secreta da AWS para o usuário. Deve ser especificado com cloudFiles.awsAccessKey.

cloudFiles.roleArn

Nenhuma

Uma string ARN

O ARN de uma IAM role a ser assumida, se necessário. A função pode ser assumida a partir do instance profile do seu cluster ou fornecendo credenciais com cloudFiles.awsAccessKey e cloudFiles.awsSecretKey.

cloudFiles.roleExternalId

Nenhuma

Qualquer cadeia de caracteres

Um identificador para utilizar ao assumir uma função utilizando cloudFiles.roleArn.

cloudFiles.roleSessionName

Nenhuma

Qualquer cadeia de caracteres

Um nome de sessão opcional para utilizar ao assumir um papel utilizando cloudFiles.roleArn.

cloudFiles.stsEndpoint

Nenhuma

Uma string de URL

Um endpoint opcional a ser usado para acessar o AWS STS ao assumir uma função utilizando o cloudFiles.roleArn.

Azure

Você deve especificar valores para todas as seguintes opções se você especificar cloudFiles.useNotifications = true e desejar que o Auto Loader configure os serviços de notificação para você:

Chave

Padrão

Valores válidos

Descrição

cloudFiles.resourceGroup

Nenhuma

Qualquer cadeia de caracteres

O grupo de recursos Azure no qual a account de armazenamento foi criada.

cloudFiles.subscriptionId

Nenhuma

Qualquer cadeia de caracteres

O ID de inscrição Azure no qual o grupo de recursos foi criado.

databricks.serviceCredential

Nenhuma

Qualquer cadeia de caracteres

O nome da sua credencial de serviço do Databricks. Disponível no Databricks Runtime 16.1 e versões superiores.

Se uma credencial de serviço do Databricks não estiver disponível, é possível especificar as seguintes opções de autenticação em vez disso:

Chave

Padrão

Valores válidos

Descrição

cloudFiles.clientId

Nenhuma

Qualquer cadeia de caracteres

O ID do cliente ou o ID do aplicativo da entidade de serviço Databricks.

cloudFiles.clientSecret

Nenhuma

Qualquer cadeia de caracteres

O segredo do cliente da entidade de serviço Databricks .

cloudFiles.connectionString

Nenhuma

Uma string de conexão

A string de caracteres de conexão para a conta de armazenamento, com base na chave de acesso à conta ou na assinatura de acesso compartilhado (SAS).

cloudFiles.tenantId

Nenhuma

Qualquer cadeia de caracteres

O ID do inquilino Azure no qual a entidade de serviço Databricks é criada.

Forneça a seguinte opção somente se você escolher cloudFiles.useNotifications = true e desejar que o Auto Loader utilize uma fila existente:

Chave

Padrão

Valores válidos

Descrição

cloudFiles.queueName

Nenhuma

Qualquer cadeia de caracteres

O nome da fila Azure. Se especificada, a origem dos arquivos de cloud consome diretamente os eventos desta fila em vez de configurar seus próprios serviços de Armazenamento de Filas e de Grade de Eventos do Azure. Nesse caso, seu databricks.serviceCredential ou cloudFiles.connectionString exige apenas permissões de leitura na fila.

GCP

Auto Loader pode configurar automaticamente o serviço de notificações para você, utilizando as credenciais do serviço Databricks . A account de serviço criada com as credenciais de serviço Databricks exigirá as permissões especificadas em Configurar transmissão Auto Loader no modo de notificação de arquivo.

Chave

Padrão

Valores válidos

Descrição

cloudFiles.projectId

Nenhuma

Qualquer cadeia de caracteres

O ID do projeto ao qual o bucket do GCS pertence. A assinatura Pub/Sub do Google Cloud também foi criada dentro deste projeto.

databricks.serviceCredential

Nenhuma

Qualquer cadeia de caracteres

O nome da sua credencial de serviço do Databricks. Disponível no Databricks Runtime 16.1 e versões superiores.

Se uma credencial de serviço do Databricks não estiver disponível, é possível usar contas de serviço do Google diretamente. Você pode configurar seu cluster para assumir uma account de serviço seguindo a configuração de serviço do Google ou especificar as seguintes opções de autenticação:

Chave

Padrão

Valores válidos

Descrição

cloudFiles.client

Nenhuma

Qualquer cadeia de caracteres

A ID do cliente da conta do Google Service.

cloudFiles.clientEmail

Nenhuma

Uma string de endereço de email

O e-mail da Conta de Serviço do Google.

cloudFiles.privateKey

Nenhuma

Uma string de key privada

A key privada gerada para a conta do serviço do Google.

cloudFiles.privateKeyId

Nenhuma

Qualquer cadeia de caracteres

O ID da key privada gerada para a conta do serviço Google.

Forneça a seguinte opção somente se escolher cloudFiles.useNotifications = true e quiser que o Auto Loader utilize uma fila que já tenha configurado:

Chave

Padrão

Valores válidos

Descrição

cloudFiles.subscription

Nenhuma

Qualquer cadeia de caracteres

O nome da inscrição do Google Cloud Pub/Sub. Se especificado, a origem de arquivos na cloud consome eventos desta fila em vez de configurar seus próprios serviços de Notificação GCS e Google Cloud Pub/Sub.

Delta Lake

As seguintes opções se aplicam ao ler de uma tabela Delta Lake usando spark.readStream.

Chave

Padrão

Valores válidos

Descrição

allowSourceColumnDrop

Nenhuma

Um número de versão ou always

Defina com um número de versão da tabela Delta ou always para permitir que a transmissão continue após a remoção de colunas do esquema da tabela de origem. Quando definido para um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Consulte Renomear e remover colunas com o mapeamento de colunas do Delta Lake.

allowSourceColumnRename

Nenhuma

Um número de versão ou always

Defina com um número de versão da tabela Delta ou always para permitir que a transmissão continue após as colunas serem renomeadas na tabela de origem. Quando definido para um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Consulte Renomear e remover colunas com o mapeamento de colunas do Delta Lake.

allowSourceColumnTypeChange

Nenhuma

Um número de versão ou always

Defina com um número de versão da tabela Delta ou always para permitir que a transmissão continue após a alteração dos tipos de coluna na tabela de origem. Quando definido para um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Veja Ampliação de tipo.

excludeRegex

Nenhuma

Uma String Java regex

Um padrão de expressão regular. Os arquivos cujos caminhos correspondem ao padrão são excluídos da transmissão lida. Útil para filtrar arquivos que não estejam de acordo com a convenção de nomenclatura esperada.

failOnDataLoss

true

true, false

Se deve falhar a consulta de transmissão se os dados de origem tiverem sido excluídos devido à retenção log (logRetentionDuration). Defina como false para ignorar dados ausentes e continuar o processamento. Consulte Configurar retenção de dados para consultas de viagem do tempo.

ignoreChanges (obsoleto)

false

true, false

Disponível no Databricks Runtime 11.3 LTS e versões anteriores. Reemite arquivos de dados reescritos após operações de modificação como UPDATE, MERGE INTO, DELETE ou OVERWRITE. Linhas inalteradas podem ser emitidas juntamente com novas linhas, portanto, os consumidores subsequentes devem lidar com duplicatas. As exclusões não são propagadas para os fluxos subsequentes. Substituído por skipChangeCommits no Databricks Runtime 12.2 LTS e versões superiores.

ignoreDeletes (obsoleto)

false

true, false

Ignora transações que excluem dados nos limites das partições (apenas exclusões completas de partições). Não lida com exclusões, atualizações ou outras modificações que não envolvam partições. Use skipChangeCommits em vez disso.

readChangeFeed ou readChangeData

false

true, false

Habilitar a leitura do feed de dados de alteração para a consulta de transmissão. Quando ativada, a transmissão emite alterações no nível da linha (inserções, atualizações e exclusões) com colunas de metadados adicionais. Consulte Usar o feed de dados de alteração no Databricks.

schemaTrackingLocation

Nenhuma

Uma string de caminho

Caminho para um diretório onde Delta Lake rastreia as alterações de esquema para a leitura de transmissão. Necessário quando transmitido de tabelas com mapeamento de coluna ativado e usando opções allowSourceColumn* para lidar com a evolução do esquema. Deve estar dentro do checkpointLocation da consulta de transmissão. Consulte Renomear e remover colunas com o mapeamento de colunas do Delta Lake.

skipChangeCommits

false

true, false

Ignora transações que excluem ou modificam registros existentes e processa apenas as que adicionam informações. A Databricks recomenda esta opção para a maioria das cargas de trabalho que não utilizam feeds de dados de alterações. Disponível no Databricks Runtime 12.2 LTS e versões superiores. Consulte Ignorar commit de alteração upstream com skipChangeCommits.

startingTimestamp

Última versão disponível

Uma string de timestamp como 2019-01-01T00:00:00.000Z ou uma string de data como 2019-01-01

Marca de tempo para iniciar a leitura. A transmissão lê todas as alterações de tabela confirmadas na data e hora especificadas ou posteriormente. Se o carimbo de data/hora for anterior a todos os commits disponíveis na tabela, a transmissão começará a partir do commit mais antigo disponível. Não pode ser usado em conjunto com startingVersion. Ignorado se o ponto de controle de transmissão já existir.

startingVersion

Última versão disponível

Um número inteiro positivo, 0, ou latest

Versão da tabela Delta a partir da qual iniciar a leitura. A transmissão lê todas as alterações efetuadas na versão especificada ou posteriormente. Especifique latest para começar apenas com as alterações mais recentes. Não pode ser usado em conjunto com startingTimestamp. Ignorado se o ponto de controle de transmissão já existir. Consulte Trabalhar com a história da tabela.

withEventTimeOrder

false

true, false

Divide a tabela inicial Snapshot em intervalos de tempo de eventos para evitar que registros sejam marcados incorretamente como eventos tardios e descartados em consultas com estado que contenham marcas d'água. Não pode ser alterado após o início do processamento inicial do Snapshot 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 spark.readStream.format("kafka") ou spark.read.format("kafka"):

Chave

Padrão

Valores válidos

Descrição

assign

Nenhuma

Uma string JSON, como por exemplo {"topicA":[0,1],"topicB":[2,4]}

As partições específicas a serem consumidas. Você deve especificar exatamente uma das opções subscribe, subscribePattern ou assign.

failOnDataLoss

true

true, false

Se a consulta deve falhar quando houver a possibilidade de os dados terem sido perdidos, por exemplo, devido a tópicos excluídos ou truncamento de offset. Defina como false para ignorar dados ausentes e continuar.

A Databricks estima, de forma conservadora, se os dados podem ter sido perdidos. No entanto, isso pode causar alarmes falsos.

fetchoffset.numretries

3

Números inteiros positivos ou 0

O número de tentativas quando a obtenção dos offsets do Kafka falha.

fetchoffset.retryintervalms

1000

Números inteiros positivos ou 0

O intervalo em milissegundos entre novas tentativas de busca de offset.

groupIdPrefix

spark-kafka-source (transmissão), spark-kafka-relation (lotes)

Qualquer cadeia de caracteres

O prefixo personalizado a ser usado para a ID do grupo de consumidores Kafka gerada automaticamente. Se kafka.group.id for explicitamente definido, o conector ignora esta opção.

kafka.group.id

Nenhuma

Qualquer cadeia de caracteres

A ID do grupo de consumidores Kafka a ser usada durante a leitura. Use com cautela: consultas compartilhando a mesma ID de grupo interferem entre si e podem ler apenas dados parciais. Isso pode ocorrer ao executar cargas de trabalho concorrentes de lotes e transmissão, ou ao reiniciar consultas rapidamente. Se definido, groupIdPrefix é ignorado. Para minimizar problemas, defina a configuração de consumidor do Kafka session.timeout.ms para um valor pequeno.

includeHeaders

false

true, false

Se os cabeçalhos do Kafka devem ser incluídos como uma coluna na saída.

kafkaconsumer.polltimeoutms

Nenhuma

Inteiros positivos

O tempo limite em milissegundos para a chamada poll() do consumidor Kafka.

kafka.bootstrap.servers

Nenhuma

Uma lista delimitada por vírgulas de host:port strings

Uma lista de hosts separados por vírgulas Endereços para brokers Kafka. Define a propriedade bootstrap.servers do cliente Kafka.

Se você não encontrar dados do Kafka, verifique esta lista de endereços de brokers em busca de endereços incorretos. Se a lista de endereços do corretor estiver incorreta, pode não haver erros. Os clientes do Kafka partem do princípio de que os brokers estarão disponíveis eventualmente e continuam tentando indefinidamente quando recebem erros de rede.

maxRecordsPerPartition

Nenhuma

Inteiros positivos

O número máximo de registros para cada partição Spark. Quando configurado, o conector divide as partições Kafka para que cada partição Spark leia no máximo esta quantidade de registros.

Você também pode usar esta opção com minPartitions. Quando ambas as opções estão definidas, o Spark usa aquela que resultar em mais partições.

minPartitions

Nenhuma

Inteiros positivos

O número mínimo de partições Spark para ler a partir do Kafka. Quando configurado, o conector divide grandes partições do Kafka para aumentar o paralelismo. Quando não configurado, o Spark cria uma partição para cada partição de tópico do Kafka. Útil para lidar com distorção de dados ou pico de carga.

Essa opção reinicializa os consumidores do Kafka para cada gatilho, o que pode afetar o desempenho com SSL.

startingOffsets

latest (transmissão), earliest (lotes)

earliest, latest ou uma string JSON de deslocamento

O deslocamento a partir do qual a consulta inicia a leitura. Na sequência JSON, -1 é o deslocamento mais recente. -2 é o deslocamento mais antigo. Por exemplo: {"topicA":{"0":23,"1":-2}}.

Para consultas de transmissão, esta opção só se aplica quando uma nova consulta começa. Consultas retomadas sempre utilizam o ponto de verificação. Durante uma consulta, novas partições começam a ser lidas a partir do deslocamento mais antigo.

Para consultas de lotes, latest não é permitido.

startingOffsetsByTimestamp

Nenhuma

Uma string de carimbo de data/hora JSON, como {"topicA":{"0":1000,"1":2000}}

Uma lista de deslocamentos iniciais para cada partição, especificados como timestamps em milissegundos. Quando nenhum deslocamento existe para um carimbo de data/hora, o comportamento da consulta é determinado por startingOffsetsByTimestampStrategy.

Para consultas de transmissão, esta opção só se aplica quando uma nova consulta começa. Consultas retomadas sempre utilizam o ponto de verificação. Durante uma consulta, novas partições começam a ser lidas a partir do deslocamento mais antigo.

startingOffsetsByTimestampStrategy

error

error, latest

A estratégia a ser usada quando nenhum deslocamento for encontrado para um carimbo de data/hora especificado em startingOffsetsByTimestamp ou startingTimestamp. error gera uma exceção. latest usa o deslocamento mais recente disponível.

startingTimestamp

Nenhuma

Números inteiros positivos ou 0

O timestamp global inicial em milissegundos que se aplica a todas as partições. Quando não há deslocamento para o carimbo de data/hora, o comportamento é controlado por startingOffsetsByTimestampStrategy.

subscribe

Nenhuma

Uma lista de nomes de tópicos separados por vírgula

Os tópicos para assinar. Você deve especificar exatamente uma das opções subscribe, subscribePattern ou assign.

subscribePattern

Nenhuma

Uma String Java regex

O padrão usado para assinar tópicos. Você deve especificar exatamente uma das opções subscribe, subscribePattern ou assign. Por exemplo, topic.*.

As seguintes opções aplicam-se apenas a transmissões lidas com spark.readStream.format("kafka"):

Chave

Padrão

Valores válidos

Descrição

bytesEstimateWindowLength

300s

Strings de duração, como 10m ou 600s

O período de tempo usado para estimar os bytes restantes para a métrica estimatedTotalBytesBehindLatest. Consulte Recuperar métricas de Kafka.

maxOffsetsPerTrigger

Nenhuma

Inteiros positivos

O número máximo de deslocamentos a serem processados por intervalo de gatilho. Deslocamentos são distribuídos proporcionalmente entre as partições de tópicos.

maxTriggerDelay

15m

Strings de duração, como 10m ou 600s

O tempo máximo de espera para que minOffsetsPerTrigger se acumule antes do acionamento.

minOffsetsPerTrigger

Nenhuma

Inteiros positivos

O número mínimo de deslocamentos para acumular antes de acionar um micro-lote. Quando maxTriggerDelay for atingido, o microlote será executado independentemente.

Para opções de deslocamento que se aplicam apenas a leituras de lotes com spark.read.format("kafka"), consulte Opções Kafka DataFrameReader.

Autenticação

A Databricks recomenda o uso de uma credencial de serviço do Unity Catalog para se autenticar em serviços Kafka gerenciados na cloud (AWS MSK, Azure Event Hubs ou Google Cloud Managed Kafka).

Chave

Padrão

Valores válidos

Descrição

databricks.serviceCredential

Nenhuma

Qualquer cadeia de caracteres

O nome de uma credencial de serviço do Unity Catalog para autenticar serviços Kafka gerenciados em cloud. Disponível no Databricks Runtime 16.1 e acima.

databricks.serviceCredential.scope

Nenhuma

Qualquer cadeia de caracteres

O escopo OAuth para a credencial de serviço. Defina isso somente quando o Databricks não puder inferir automaticamente o escopo para o seu serviço Kafka.

Quando uma credencial de serviço não estiver disponível, utilize as opções SASL/SSL (passadas como propriedades kafka.*). Ao usar uma credencial de serviço, não é necessário especificar kafka.sasl.mechanism, kafka.sasl.jaas.config ou kafka.security.protocol.

Chave

Padrão

Valores válidos

Descrição

kafka.security.protocol

Nenhuma

Uma string de protocolo de segurança, como SASL_SSL, SSL, PLAINTEXT

O protocolo de segurança para comunicação de corretagem.

kafka.sasl.mechanism

Nenhuma

Uma string de mecanismo SASL, como PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER, AWS_MSK_IAM

O mecanismo SASL.

kafka.sasl.jaas.config

Nenhuma

Uma string de configuração JAAS

A string de configuração de login JAAS.

kafka.sasl.login.callback.handler.class

Nenhuma

Um nome de classe totalmente qualificado

O nome de classe totalmente qualificado de um manipulador de callback de login para autenticação SASL.

kafka.sasl.client.callback.handler.class

Nenhuma

Um nome de classe totalmente qualificado

O nome de classe completamente qualificado de um manipulador de retorno de chamada de cliente para autenticação SASL.

kafka.ssl.truststore.location

Nenhuma

Uma string de caminho do arquivo

O caminho para o arquivo de armazenamento de confiança SSL.

kafka.ssl.truststore.password

Nenhuma

Qualquer cadeia de caracteres

A senha para o arquivo de armazenamento de confiança SSL.

kafka.ssl.keystore.location

Nenhuma

Uma string de caminho do arquivo

O caminho para o arquivo de armazenamento de chaves SSL.

kafka.ssl.keystore.password

Nenhuma

Qualquer cadeia de caracteres

A senha para o arquivo de armazenamento de chaves SSL.

Para obter instruções completas de configuração de autenticação, consulte Autenticação.

Kinesis

Use estas opções com spark.readStream.format("kinesis") para ler do Amazon Kinesis Data Streams. É necessário especificar streamName ou streamARN, mas não ambos.

Chave

Padrão

Valores válidos

Descrição

streamName

Nenhuma

Uma lista delimitada por vírgulas de nomes de transmissão

Uma lista separada por vírgulas de nomes de transmissão Kinesis para assinar.

streamARN

Nenhuma

Uma lista separada por vírgulas de ARNs de transmissões do Kinesis

Uma lista separada por vírgulas de ARNs de transmissão Kinesis. Por exemplo, arn:aws:kinesis:myarn1,arn:aws:kinesis:myarn2. Disponível no Databricks Runtime 16.1 e acima.

As seguintes opções também estão disponíveis:

Chave

Padrão

Valores válidos

Descrição

awsAccessKey

Nenhuma

Qualquer cadeia de caracteres

A ID da access key da AWS. Deve ser especificado com awsSecretKey.

awsSecretKey

Nenhuma

Qualquer cadeia de caracteres

Chave de acesso secreta AWS correspondente a awsAccessKey.

coalesceBinSize

128000000

Inteiros positivos

O tamanho aproximado do bloco de destino em bytes após a coalescência.

coalesceThresholdBlockSize

10000000

Inteiros positivos

O limite no qual ocorre a coalescência automática. Se o tamanho médio do bloco for menor que esse valor, os blocos pré-buscados serão agrupados em coalesceBinSize.

consumerMode

polling

polling, efo

O tipo de consumidor. efo oferece fan-out aprimorado com taxa de transferência dedicada de 2 MB/s por fragmento. Disponível no Databricks Runtime 11.3 LTS e acima.

consumerName

ID da consulta de transmissão

Um único nome de consumidor ou uma lista delimitada por vírgulas correspondente ao número de transmissões.

O nome do consumidor usado para registrar a consulta com o serviço Kinesis no modo EFO. Disponível no Databricks Runtime 11.3 LTS e acima.

consumerNamePrefix

databricks_

Qualquer cadeia de caracteres

O prefixo que precede consumerName ao registrar consumidores no modo EFO. Disponível no Databricks Runtime 16.0 e acima.

consumerRefreshInterval

300s (máx. 3600s)

Uma string de duração como 1s

O intervalo em que o registro do consumidor EFO é verificado e atualizado. Disponível no Databricks Runtime 11.3 LTS e acima.

endpoint

Região resolvida localmente

Qualquer cadeia de caracteres

O ponto final regional do Kinesis Data Streams.

fetchBufferSize

20gb

Uma sequência de bytes, por exemplo, 2gb ou 10mb

A quantidade de dados a serem armazenados em buffer para o próximo gatilho. Isso é uma condição de parada, não um limite superior estrito. Mais dados podem ser armazenados em buffer do que o especificado.

initialPosition

latest

latest, trim_horizon, earliest, at_timestamp

Por onde começar a ler na transmissão. trim_horizon é um alias para earliest.

Para at_timestamp, especifique uma string JSON usando formato de carimbo de data/hora Java, como {"at_timestamp": "06/25/2020 10:23:45 PDT"}. Você também pode especificar um formato personalizado: {"at_timestamp": "06/25/2020 10:23:45 PDT", "format": "MM/dd/yyyy HH:mm:ss ZZZ"}.

maxFetchDuration

10s

Uma string de duração como 1m

A duração para armazenar em buffer os dados pré-configurados antes de disponibilizá-los para processamento.

maxFetchRate

1.0 (máx. 2.0)

Números decimais positivos

A taxa máxima de pré-busca de dados por fragmento em MB/s. Isso limita a taxa de buscas para evitar a limitação do Kinesis. O Kinesis permite no máximo 2.0 MB/s.

maxRecordsPerFetch

10000

Inteiros positivos

O número de registros a serem lidos por solicitação de API do Kinesis. O número de registros retornados poderá ser maior se os sub-registros forem agregados usando a Kinesis Producer Library.

maxShardsPerDescribe

100

Números inteiros positivos até 10000

O número máximo de fragmentos a serem lidos por chamada de API ao listar fragmentos.

minFetchPeriod

400ms (mín. 200ms)

Uma string de duração como 1s

A duração mínima para aguardar entre as tentativas consecutivas de pré-busca. Isso limita a frequência de buscas para evitar a limitação do Kinesis. 200ms é o mínimo, pois o Kinesis permite no máximo 5 buscas por segundo.

region

Região resolvida localmente

Qualquer cadeia de caracteres

A região em que as transmissões são definidas.

registeredConsumerId

Nenhuma

Uma lista separada por vírgulas de nomes de consumidores ou ARNs

Uma lista de identificadores separados por vírgula para consumidores EFO existentes. Disponível no Databricks Runtime 16.1 e acima.

registeredConsumerIdType

Nenhuma

name, ARN

Se os identificadores em registeredConsumerId são nomes de consumidores ou ARNs. Disponível no Databricks Runtime 16.1 e acima.

requireConsumerDeregistration

false

true, false

Se deve cancelar o registro do consumidor de fan-out aprimorado no encerramento da consulta. Exige consumerMode definido como efo. Disponível no Databricks Runtime 11.3 LTS e acima.

roleArn

Nenhuma

Uma string ARN

O ARN de uma IAM role a ser assumida ao acessar o Kinesis.

roleExternalId

Nenhuma

Qualquer cadeia de caracteres

Um ID externo opcional para utilizar ao assumir a função especificada por roleArn. Consulte Como usar um ID externo.

roleSessionName

Nenhuma

Qualquer cadeia de caracteres

Um identificador para a sessão de função assumida. Identifica exclusivamente uma sessão quando a mesma função é assumida por diferentes princípios.

serviceCredential

Nenhuma

Qualquer cadeia de caracteres

O nome da sua credencial de serviço do Databricks para autenticação no Kinesis. Disponível no Databricks Runtime 16.1 e acima.

stsEndpoint

Nenhuma

Uma string de URL

Um endpoint personalizado para AWS STS ao assumir uma função usando roleArn.

shardFetchInterval

1s

Uma string de duração como 2m

O intervalo de pesquisa do Kinesis para eventos de resharding.

shardsPerTask

5

Inteiros positivos

O número de fragmentos do Kinesis a serem buscados previamente em paralelo por tarefa do Spark. Para latência mínima, assegure # cores in cluster >= # Kinesis shards / shardsPerTask.

Para obter mais informações sobre a leitura do Kinesis, consulte Conecte-se ao Amazon Kinesis.

Pub/Sub

Use estas opções com spark.readStream.format("pubsub") para assinar o Google Pub/Sub. As opções subscriptionId, topicId e projectId são obrigatórias.

Chave

Padrão

Valores válidos

Descrição

subscriptionId

Nenhuma

Qualquer cadeia de caracteres

Obrigatório. O ID da inscrição do Pub/Sub. O conector cria a inscrição se ela não existir.

topicId

Nenhuma

Qualquer cadeia de caracteres

Obrigatório. O ID do tópico Pub/Sub.

projectId

Nenhuma

Qualquer cadeia de caracteres

Obrigatório. ID do projeto do Google Cloud.

numFetchPartitions

Metade do número de executores disponíveis na inicialização da transmissão

Inteiros positivos

O número de tarefas Spark paralelas que buscam linhas da inscrição.

maxBytesPerTrigger

Nenhuma

Inteiros positivos

Um limite flexível para o número de bytes a serem processados por micro-lote.

maxRecordsPerFetch

1000

Inteiros positivos

O número de linhas a serem buscadas por tarefa antes do processamento.

maxFetchPeriod

10s

Uma string de duração, como 1s ou 1m

A duração da obtenção de cada tarefa antes de processar as linhas. A Databricks recomenda usar o valor default.

deleteSubscriptionOnStreamStop

false

true, false

Quando true, a inscrição, de subscriptionId, é excluída quando a consulta de transmissão termina.

serviceCredential

Nenhuma

Qualquer cadeia de caracteres

O nome de uma credencial de serviço do Databricks para autenticação no Pub/Sub. Disponível no Databricks Runtime 16.1 e acima.

clientEmail

Nenhuma

Uma string de endereço de email

O endereço de email da account de Serviço do Google. Obrigatório quando não se utiliza uma credencial de serviço.

clientId

Nenhuma

Qualquer cadeia de caracteres

A ID do cliente da account do Google Service. Obrigatório quando não se utiliza uma credencial de serviço.

privateKey

Nenhuma

Uma string de key privada

A key privada para a account de serviço do Google. Obrigatório quando não se utiliza uma credencial de serviço.

privateKeyId

Nenhuma

Qualquer cadeia de caracteres

A ID da key privada da account de serviço do Google. Obrigatório quando não se utiliza uma credencial de serviço.

Para obter mais informações sobre Pub/Sub, consulte Assinar o Google Pub/Sub.

Pulsar

Use estas opções com spark.readStream.format("pulsar") para transmitir do Apache Pulsar. Disponível no Databricks Runtime 14.1 e acima.

As opções a seguir são obrigatórias. Você deve especificar exatamente um dentre topic, topics ou topicsPattern.

Chave

Padrão

Valores válidos

Descrição

service.url

Nenhuma

Uma string de URL de serviço do Pulsar

O Pulsar serviceURL para o serviço Pulsar, por exemplo, pulsar://broker.example.com:6650.

topic

Nenhuma

Qualquer cadeia de caracteres

Um único nome de tópico a ser consumido.

topics

Nenhuma

Uma lista de nomes de tópicos separados por vírgula

Uma lista separada por vírgulas de nomes de tópicos para consumir.

topicsPattern

Nenhuma

Uma String Java regex

Uma string Java regex para corresponder a nomes de tópicos.

As seguintes opções também são compatíveis:

Chave

Padrão

Valores válidos

Descrição

admin.url

Nenhuma

Uma string de URL

A URL HTTP do serviço administrativo do Pulsar. É necessário quando maxBytesPerTrigger é definido.

allowDifferentTopicSchemas

false

true, false

Se vários tópicos com esquemas diferentes forem lidos, use esta opção para desativar a desserialização automática de valor de tópico baseada em esquema. Somente os valores não processados são retornados quando isso é true.

failOnDataLoss

true

true, false

Se a consulta deve falhar quando os dados forem perdidos. Por exemplo, a perda de dados pode ocorrer quando tópicos são excluídos ou mensagens expiram devido à política de retenção.

maxBytesPerTrigger

Nenhuma

Inteiros positivos

Um limite flexível para a quantidade de bytes a serem processados por micro-batch. É necessário admin.url.

pollTimeoutMs

120000

Inteiros positivos

O tempo limite para a leitura de mensagens do Pulsar em milissegundos.

predefinedSubscription

Nenhuma

Qualquer cadeia de caracteres

O nome da inscrição predefinida usado pelo conector para acompanhar o progresso das aplicações Spark.

startingOffsets

latest

latest, earliest ou uma string JSON de deslocamento

Por onde começar a ler?

subscriptionPrefix

Nenhuma

Qualquer cadeia de caracteres

O prefixo usado pelo conector para gerar uma inscrição aleatória para rastrear o progresso das aplicações Spark.

waitingForNonExistedTopic

false

true, false

O conector aguarda até que os tópicos desejados sejam criados.

É possível definir configurações adicionais de cliente, administrador e leitor do Pulsar usando os seguintes padrões de opção:

Padrão

Opções de configuração

pulsar.admin.*

Configuração do administrador do Pulsar

pulsar.client.*

Configuração do cliente Pulsar, incluindo opções de autenticação como pulsar.client.authPluginClassName e pulsar.client.authParams.

pulsar.reader.*

Configuração do leitor Pulsar

Para obter mais informações sobre as opções de autenticação de cliente e administrador do Pulsar, consulte Autenticação.

Autenticação

O Databricks suporta autenticação de truststore e keystore ao Pulsar. O Databricks recomenda usar segredos para armazenar detalhes de autenticação. Consulte Gerenciamento de segredos.

Chave

Padrão

Valores válidos

Descrição

pulsar.client.authPluginClassName

Nenhuma

Um nome de classe totalmente qualificado

O nome de classe totalmente qualificado do plugin de autenticação. Por exemplo, org.apache.pulsar.client.impl.auth.AuthenticationTls.

pulsar.client.authParams

Nenhuma

Uma cadeia de caracteres de credencial

Credenciais de autenticação passadas para o plug-in de autenticação como uma cadeia de caracteres. Por exemplo, tlsCertFile:/path/to/my-role.cert.pem,tlsKeyFile:/path/to/my-role.key-pk8.pem.

pulsar.client.useKeyStoreTls

false

true, false

Quando true, habilita a configuração TLS baseada em KeyStore em vez de arquivos no formato PEM.

pulsar.client.tlsTrustStoreType

Nenhuma

Qualquer cadeia de caracteres

O formato do arquivo de armazenamento de confiança TLS. Por exemplo, JKS.

pulsar.client.tlsTrustStorePath

Nenhuma

Uma string de caminho do arquivo

O caminho para o arquivo de armazenamento de confiança TLS contendo certificados de CA confiáveis. É necessário quando pulsar.client.useKeyStoreTls for true.

pulsar.client.tlsTrustStorePassword

Nenhuma

Qualquer cadeia de caracteres

A senha para o arquivo de armazenamento de confiança TLS.

Se a transmissão usar um PulsarAdmin, você também poderá definir as seguintes opções:

Chave

Padrão

Valores válidos

Descrição

pulsar.admin.authPluginClassName

Nenhuma

Um nome de classe totalmente qualificado

O nome da classe totalmente qualificado do plug-in de autenticação para o cliente administrador do Pulsar.

pulsar.admin.authParams

Nenhuma

Uma cadeia de caracteres de credencial

Credenciais de autenticação para o plugin de autenticação do cliente administrador do Pulsar.

pulsar.admin.useTls

Nenhuma

true, false

Usar TLS para a conexão do cliente admin do Pulsar

pulsar.admin.tlsAllowInsecureConnection

Nenhuma

true, false

Se permitir conexões TLS inseguras para o cliente administrativo do Pulsar

pulsar.admin.tlsTrustCertsFilePath

Nenhuma

Uma string de caminho do arquivo

Caminho para o arquivo de certificado TLS confiável para o cliente administrador do Pulsar.

pulsar.admin.useKeyStoreTls

Nenhuma

true, false

Se deve usar TLS baseado em KeyStore para o cliente administrador do Pulsar.

pulsar.admin.tlsTrustStoreType

Nenhuma

Qualquer cadeia de caracteres

O formato do repositório de confiança TLS para o cliente administrador Pulsar. Por exemplo, JKS.

pulsar.admin.tlsTrustStorePath

Nenhuma

Uma string de caminho do arquivo

Caminho para o arquivo de armazenamento de confiança TLS para o cliente administrador do Pulsar. É necessário quando pulsar.admin.useKeyStoreTls for true.

pulsar.admin.tlsTrustStorePassword

Nenhuma

Qualquer cadeia de caracteres

Senha para o repositório de confiança TLS do cliente administrador do Pulsar.

Para exemplos de autenticação, consulte Autenticar-se no Pulsar.

Opções do DataFrameWriter

Use estas opções com DataFrameWriter.option() e DataFrameWriterV2.option() para controlar como o Databricks grava os dados.

Exemplo

O exemplo a seguir define mergeSchema como True para escrever uma tabela Delta Lake:

Python
df.write.format("delta").option("mergeSchema", True).saveAsTable("my_table")

Avro

As seguintes opções se aplicam ao gravar arquivos Avro.

Chave

Padrão

Valores válidos

Descrição

avroSchema

Nenhuma

Uma string de esquema JSON

O esquema Avro completo como uma cadeia de caracteres JSON. Esta opção permite converter tipos do Spark SQL em tipos Avro específicos. Aplica-se a Leitura e gravação de arquivos Avro.

avroSchemaUrl

Nenhuma

Uma string de URL

Uma URL apontando para um arquivo de esquema Avro. Use em vez de avroSchema quando o esquema for armazenado externamente. Mutuamente exclusivo com avroSchema. Aplica-se a Ler e gravar arquivos Avro.

compression

snappy

uncompressed, deflate, snappy (default), bzip2, xz, zstandard

Codec de compactação a ser usado ao gravar. Aplica-se a Leitura e gravação de arquivos Avro.

recordName

topLevelRecord

Qualquer cadeia de caracteres

O nome do registro de nível superior no esquema Avro de saída. Aplica-se a Leitura e gravação de arquivos Avro.

positionalFieldMatching

false

true, false

Se deve corresponder colunas entre o esquema Spark e o esquema Avro por posição do campo em vez de por nome. Aplica-se a Leitura e gravação de arquivos Avro.

recordNamespace

Cadeias vazias

Qualquer cadeia de caracteres

O namespace para o registro de nível superior no esquema Avro de saída. Aplica-se a Leitura e gravação de arquivos Avro.

Delta Lake e Iceberg Apache

As opções a seguir se aplicam ao gravar tabelas Delta Lake e Apache Iceberg.

Chave

Padrão

Valores válidos

Descrição

clusterByAuto

false

true, false

Ativar ou não clustering líquido automático, em que Databricks seleciona colunas clustering com base em padrões de consulta. Válido apenas com mode("overwrite"). Não pode ser usado com o modo append . Disponível no Databricks Runtime 16.4 e versões superiores. Aplica-se ao uso clustering líquido para tabelas.

mergeSchema

Nenhuma

true, false

Se deve ser habilitada a evolução do esquema para as operações de gravação. Novas colunas no DataFrame de origem são adicionadas ao esquema da tabela de destino. Aplica-se a lotes e anexos de transmissão. Aplica-se à atualização do esquema da tabela.

overwriteSchema

Nenhuma

true, false

Se deve substituir o esquema da tabela e o particionamento ao sobrescrever. Requer mode("overwrite") sem replaceWhere. Não pode ser usado com partitionOverwriteMode. Aplica-se à atualização do esquema da tabela.

partitionOverwriteMode

Nenhuma

static, dynamic

O modo de substituição da partição. Defina esta opção como dynamic para substituir apenas partições que contêm novos dados, deixando todas as outras partições inalteradas. Modo legado, não compatível com compute serverless ou Databricks SQL. Aplica-se a Sobrescrever dados seletivamente com o Delta Lake.

replaceOn

Nenhuma

Uma string de expressão booleana

Uma expressão booleana que compara linhas na tabela de destino para substituir por linhas da consulta de origem. É possível referenciar colunas tanto da tabela de destino quanto 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 versões superiores. Aplica-se à sobrescrita seletiva de dados com o Delta Lake.

replaceUsing

Nenhuma

Uma lista separada por vírgulas de nomes de colunas

Uma lista de nomes de colunas separados por vírgulas, usada para encontrar correspondências entre as linhas da tabela de destino e da consulta de origem. Tanto o destino quanto a origem devem conter todas as colunas listadas. As linhas no destino que correspondem a uma linha de origem na comparação de igualdade são excluídas e substituídas. Os valores NULL são tratados como diferentes e não corresponderão. Disponível no Databricks Runtime 16.3 e versões superiores. Aplica-se à sobrescrita seletiva de dados com o Delta Lake.

replaceWhere

Nenhuma

Uma string de expressão de predicado

Uma expressão predicativa. Sobrescreve atomicamente apenas os registros que correspondem ao predicado. Aplica-se à sobrescrita seletiva de dados com o Delta Lake.

targetAlias

Nenhuma

Qualquer cadeia de caracteres

Um alias de string 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 tanto da tabela de destino quanto da consulta de origem. Aplica-se à sobrescrita seletiva de dados com o Delta Lake.

txnAppId

Nenhuma

Qualquer cadeia de caracteres

Uma string única que identifica a aplicação para escritas idempotentes em foreachBatch operações. Use em conjunto com txnVersion para garantir gravações exatamente uma vez em várias tabelas do Delta Lake. Aplica-se ao uso de foreachBatch para gravações de tabela idempotentes.

txnVersion

Nenhuma

Um inteiro crescente monotonicamente

Um número monotonicamente crescente usado como versão de transação para escritas idempotentes em operações foreachBatch . Use em conjunto com txnAppId para garantir gravações exatamente uma vez em várias tabelas do Delta Lake. Aplica-se ao uso de foreachBatch para gravações de tabela idempotentes.

optimizeWrite

Nenhuma

true, false

Indica se deseja ativar a otimização automática de gravação para esta operação de gravação. Substitui a configuração spark.databricks.delta.optimizeWrite.enabled . Aplica-se a "O que é Delta Lake no Databricks?".

userMetadata

Nenhuma

Qualquer cadeia de caracteres

Uma sequência de caracteres definida pelo usuário é anexada aos metadados commit das operações de escrita. Visível na saída de DESCRIBE HISTORY. Aplica-se a Enriquecer tabelas com metadados personalizados.

CSV

As seguintes opções se aplicam ao gravar arquivos CSV.

Chave

Padrão

Valores válidos

Descrição

charToEscapeQuoteEscaping

\0 (não ativado)

Um único caractere

O caractere usado para escapar do caractere de escape quando ele difere do caractere de aspas. Aplica-se a arquivos CSV (DataFrameWriter).

compression

none

none (default), bzip2, gzip, lz4, snappy, deflate, zstd

Codec de compactação a ser usado ao gravar. Aplica-se a CSV (DataFrameWriter).

dateFormat

yyyy-MM-dd

Uma string de formato de data

Cadeias de formatação para valores de coluna de data. Aplica-se a arquivos CSV (DataFrameWriter).

emptyValue

Cadeias vazias

Qualquer cadeia de caracteres

As strings escritas para valores vazios (não nulos). Aplica-se a arquivos CSV (DataFrameWriter).

encoding

UTF-8

Nome do(a) java.nio.charset.Charset

A codificação de caracteres para os arquivos de saída. Aplica-se a arquivos CSV (DataFrameWriter).

escape

\

Um único caractere

O caractere usado para escapar valores entre aspas. Aplica-se a arquivos CSV (DataFrameWriter).

escapeQuotes

true

true, false

Indica se os caracteres de aspas devem ser escapados dentro de valores de campos entre aspas. Aplica-se a arquivos CSV (DataFrameWriter).

header

false

true, false

Indica se os nomes das colunas devem ser exibidos como a primeira linha da saída. Aplica-se a arquivos CSV (DataFrameWriter).

ignoreLeadingWhiteSpace

false

true, false

Se deve ou não remover os espaços em branco iniciais dos valores ao escrever. Aplica-se a arquivos CSV (DataFrameWriter).

ignoreTrailingWhiteSpace

false

true, false

Se deve ou não remover os espaços em branco à direita dos valores ao escrever. Aplica-se a arquivos CSV (DataFrameWriter).

lineSep

\n

Uma string

As sequências de caracteres que separam as linhas entre os registros. Aplica-se a arquivos CSV (DataFrameWriter).

locale

en-US

Um identificador java.util.Locale

Um identificador java.util.Locale. Uma localidade Java identificada que afeta a data padrão, o carimbo de data e a análise decimal dentro do CSV.

nullValue

Cadeias vazias

Qualquer cadeia de caracteres

strings escritas para valores nulos. Aplica-se a arquivos CSV (DataFrameWriter).

quote

"

Um único caractere

O caractere usado para delimitar valores de campos que contêm o separador. Aplica-se a arquivos CSV (DataFrameWriter).

quoteAll

false

true, false

Indica se todos os valores dos campos devem ser colocados entre aspas, independentemente do conteúdo. Aplica-se a arquivos CSV (DataFrameWriter).

sep

,

Uma string

O caractere delimitador de campo. Aplica-se a arquivos CSV (DataFrameWriter).

timestampFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]

Uma string de formato de carimbo de data/hora

As strings de formatação para os valores da coluna de carimbo de data/hora. Aplica-se a arquivos CSV (DataFrameWriter).

timestampNTZFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS]

Uma string de formato de carimbo de data/hora

Strings de formatação para valores de coluna de carimbo de data/hora sem fuso horário (TimestampNTZType).

Excel

As seguintes opções se aplicam ao escrever arquivos Excel.

Chave

Padrão

Valores válidos

Descrição

dataAddress

Nenhuma

Uma string de nome de planilha ou de referência de célula

O nome da planilha ou a célula inicial para a escrita. Se omitido, escreve em uma planilha chamada Sheet1 começando na célula A1. Aceita um nome de planilha (SheetName) ou uma referência de célula única (SheetName!A1). Intervalos de células não são suportados para gravações.

dateFormatInWrite

yyyy-mm-dd

Uma string de formato de data do Excel

Cadeias de formatação de células Excel aplicadas às colunas Date . Utiliza a sintaxe de formatação do Excel.

headerRows

0

0, 1

Se os nomes das colunas devem ser escritos como a primeira linha.

timestampNTZFormat

yyyy-mm-dd hh:mm:ss

Uma cadeia de caracteres de formato de carimbo de data/hora do Excel

Cadeias de formatação de células Excel aplicadas às colunas TimestampNTZ e Timestamp . Utiliza a sintaxe de formatação do Excel.

version

xlsx

xlsx, xls

A versão do formato de arquivo Excel para gravar.

JSON

As seguintes opções se aplicam ao escrever arquivos JSON.

Chave

Padrão

Valores válidos

Descrição

compression

none

none, bzip2, gzip, lz4, snappy, deflate, zstd

Codec de compactação a ser usado ao gravar. Aplica-se a JSON (DataFrameWriter).

dateFormat

yyyy-MM-dd

Uma string de formato de data

Cadeias de formatação para valores de coluna de data. Aplica-se a JSON (DataFrameWriter).

encoding

UTF-8

Nome do(a) java.nio.charset.Charset

A codificação de caracteres para os arquivos de saída. Aplica-se a JSON (DataFrameWriter).

ignoreNullFields

valor de spark.sql.jsonGenerator.ignoreNullFields

true, false

Indica se os campos com valores nulos devem ser omitidos da saída JSON. Aplica-se a JSON (DataFrameWriter).

lineSep

\n

Uma string

As sequências de caracteres que separam as linhas entre os registros. Aplica-se a JSON (DataFrameWriter).

locale

en-US

Um identificador java.util.Locale

Um identificador de localidade Java que afeta a data padrão, o carimbo de data/hora e a análise decimal dentro do JSON.

pretty

false

true, false

Ativar ou desativar a saída JSON formatada (com recuo e várias linhas).

sortKeys

false

true, false

Indica se a chave dos objetos JSON deve ser classificada em ordem alfabética na saída. Útil para produzir resultados determinísticos.

timestampFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]

Uma string de formato de carimbo de data/hora

As strings de formatação para os valores da coluna de carimbo de data/hora. Aplica-se a JSON (DataFrameWriter).

timestampNTZFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS]

Uma string de formato de carimbo de data/hora

Strings de formatação para valores de coluna de carimbo de data/hora sem fuso horário (TimestampNTZType).

writeNonAsciiCharacterAsCodePoint

false

true, false

Indica se os caracteres não ASCII devem ser codificados como sequências de escape Unicode \uXXXX em vez de caracteres UTF-8 literais na saída.

ORC

As seguintes opções se aplicam ao gravar arquivos ORC.

Chave

Padrão

Valores válidos

Descrição

compression

zstd

none, uncompressed, snappy, zlib, lzo, zstd, lz4, brotli

Codec de compactação a ser usado ao gravar. Aplica-se a orc (DataFrameWriter).

Parquet

As seguintes opções se aplicam ao escrever arquivos Parquet.

Chave

Padrão

Valores válidos

Descrição

compression

snappy

none, uncompressed, snappy, gzip, lzo, brotli, lz4, lz4_raw, zstd

Codec de compactação a ser usado ao gravar. Aplica-se a Parquet (DataFrameWriter).

spark.sql.parquet.outputTimestampType

INT96

INT96, TIMESTAMP_MICROS, TIMESTAMP_MILLIS

O tipo físico usado para codificar colunas de carimbo de data/hora. Use INT96 para compatibilidade com leitores Parquet legados que não suportam os tipos de timestamp padrão.

Texto

As seguintes opções se aplicam ao gravar arquivos de texto.

Chave

Padrão

Valores válidos

Descrição

compression

none

none, bzip2, gzip, lz4, snappy, deflate, zstd

Codec de compactação a ser usado ao gravar. Aplica-se a texto (DataFrameWriter).

encoding

UTF-8

Nome do(a) java.nio.charset.Charset

A codificação de caracteres para os arquivos de saída.

lineSep

\n

Uma string

As sequências de caracteres que separam as linhas entre os registros. Aplica-se ao texto (DataFrameWriter).

XML

As seguintes opções se aplicam ao escrever arquivos XML.

Chave

Padrão

Valores válidos

Descrição

arrayElementName

item

Qualquer cadeia de caracteres

O nome do elemento para elementos de matriz que não possuem um nome explícito. Aplica-se a xml (DataFrameWriter).

attributePrefix

_

Qualquer cadeia de caracteres

O prefixo adicionado aos nomes de campos que correspondem a atributos XML. Aplica-se a xml (DataFrameWriter).

compression

none

none, bzip2, gzip, lz4, snappy, deflate, zstd

Codec de compactação a ser usado ao gravar. Aplica-se a xml (DataFrameWriter).

dateFormat

yyyy-MM-dd

Uma string de formato de data

Cadeias de formatação para valores de coluna de data. Aplica-se a xml (DataFrameWriter).

declaration

version="1.0" encoding="UTF-8" standalone="yes"

Uma string de declaração XML, ou string vazia para omitir.

As strings de declaração XML escritas no início de cada arquivo de saída. Defina como uma string vazia para suprimir a declaração. Aplica-se a xml (DataFrameWriter).

encoding

UTF-8

Nome do(a) java.nio.charset.Charset

A codificação de caracteres para os arquivos de saída. Aplica-se a xml (DataFrameWriter).

indent

4 espaços

Qualquer cadeia de caracteres

As strings usadas para indentar os elementos filhos na saída. Defina como uma string vazia para desativar o recuo e escrever cada linha em uma única linha.

locale

en-US

Um identificador java.util.Locale

Um identificador de localidade Java que afeta a formatação padrão de data, carimbo de data/hora e decimal dentro do XML.

nullValue

null

Qualquer cadeia de caracteres

As strings escritas para valores nulos. Quando definido como null, os atributos e elementos filhos para campos nulos são omitidos. Aplica-se a xml (DataFrameWriter).

rootTag

ROWS

Qualquer cadeia de caracteres

A tag do elemento raiz que envolve todos os elementos da linha na saída. Aplica-se a xml (DataFrameWriter).

rowTag

ROW

Qualquer cadeia de caracteres

A tag do elemento que representa uma linha na saída. Aplica-se a xml (DataFrameWriter).

singleVariantColumn

Nenhuma

Uma string de nome de coluna

O nome da única coluna Variant a ser gravada nos arquivos XML. Aplica-se a xml (DataFrameWriter).

timestampFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]

Uma string de formato de carimbo de data/hora

As strings de formatação para os valores da coluna de carimbo de data/hora. Aplica-se a xml (DataFrameWriter).

timestampNTZFormat

yyyy-MM-dd'T'HH:mm:ss[.SSS]

Uma string de formato de carimbo de data/hora

Formatar strings para carimbo de data/hora sem valores de coluna de fuso horário. Aplica-se a xml (DataFrameWriter).

validateName

true

true, false

Indica se deve ser lançada uma exceção caso o nome de uma coluna não seja um identificador de elemento XML válido. Aplica-se a xml (DataFrameWriter).

valueTag

_VALUE

Qualquer cadeia de caracteres

O nome do campo usado para dados de caracteres em elementos XML que também possuem atributos ou elementos filhos. Aplica-se a xml (DataFrameWriter).

Opções do DataStreamWriter

Use estas opções com DataStreamWriter.option() para configurar gravações de transmissão.

Exemplo

O exemplo a seguir define a localização do ponto de verificação para uma transmissão:

Python
(df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table"))

Comum

As seguintes opções se aplicam a todas as operações de gravação em transmissão.

Chave

Padrão

Valores válidos

Descrição

checkpointLocation

Nenhum (obrigatório)

Uma string de caminho

Caminho para o diretório de checkpoint da consulta de transmissão. Requerido para tolerância a falhas e garantias de processamento exatamente uma vez. Cada consulta de transmissão deve usar um local de ponto de verificação exclusivo. Databricks recomenda armazenar os pontos de verificação em um volume Unity Catalog ou em um caminho de armazenamento cloud . Veja postos de controle de transmissão estruturada.

path

Nenhuma

Uma string de caminho

Caminho de saída para destinos de transmissão baseados em arquivos, como Parquet. Aplica-se somente a formatos baseados em arquivos.

pia de console

As seguintes opções se aplicam ao gravar transmissões para o coletor de console.

Chave

Padrão

Valores válidos

Descrição

numRows

20

Inteiros positivos

O número de linhas a serem exibidas para cada microlote ao escrever no coletor de dados do console.

truncate

true

true, false

Indica se as strings longas devem ser truncadas ao exibir as linhas. Defina como false para exibir os valores completos das strings.

Delta Lake

As seguintes opções se aplicam ao gravar uma transmissão em uma tabela Delta Lake usando format("delta"). Opções somente de sobrescrita, como overwriteSchema, replaceWhere e partitionOverwriteMode não são suportadas para gravações de transmissão.

Chave

Padrão

Valores válidos

Descrição

mergeSchema

false

true, false

Se deve ou não evoluir o esquema da tabela Delta Lake quando o DataFrame de transmissão contiver novas colunas. Aplica-se somente ao modo de saída de anexos. Aplica-se à atualização do esquema da tabela.

userMetadata

Nenhuma

Qualquer cadeia de caracteres

Uma sequência de caracteres definida pelo usuário é anexada aos metadados commit das operações de escrita. Visível na saída de DESCRIBE HISTORY. Aplica-se a Enriquecer tabelas com metadados personalizados.

Pia de arquivo

A seguinte opção aplica-se ao gravar uma transmissão em formatos baseados em arquivos (Parquet, JSON, CSV, ORC, texto). Para opções específicas de formato, consulte Opções do DataFrameWriter.

Chave

Padrão

Valores válidos

Descrição

retention

Nenhuma

Uma sequência de tempo, como 7 days ou 24 hours

Por quanto tempo reter os arquivos de metadados do coletor usados para tolerância a falhas e compactação? Quando não for definido, os arquivos de metadados serão retidos indefinidamente.

Pia de Kafka

As opções a seguir se aplicam ao gravar no Kafka.

Chave

Padrão

Valores válidos

Descrição

kafka.bootstrap.servers

Nenhuma

Uma lista delimitada por vírgulas de host:port strings

Obrigatório. Uma lista de endereços de brokers Kafka host:port separados por vírgulas.

topic

Nenhuma

Qualquer cadeia de caracteres

O tópico de destino do Kafka para todas as linhas. Obrigatório se o DataFrame não incluir uma coluna topic .

kafka.*

Nenhuma

Qualquer valor de configuração do produtor Kafka

Qualquer configuração de produtor Kafka com o prefixo kafka.. Por exemplo, kafka.compression.type.

Pia de memória

As seguintes opções se aplicam ao gravar transmissões no coletor de memória.

Chave

Padrão

Valores válidos

Descrição

queryName

Nenhum (obrigatório)

Qualquer cadeia de caracteres

O nome da tabela na memória na qual a consulta grava. Necessário para o armazenamento de memória. Também configurável via .queryName().

mode

exactlyonce

exactlyonce, atleastonce

Garantia de entrega para o coletor de memória. exactlyonce usa o modo de microlotes com semântica exatamente uma vez. atleastonce usa o modo contínuo com semântica de pelo menos uma vez.

Opções da função Spark

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

Exemplo

O exemplo a seguir analisa uma coluna JSON, descartando 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"}))

Avro

As funções Avro aceitam as mesmas opções que as opções correspondentes do DataFrame:

Exemplo

O exemplo a seguir decodifica uma coluna Avro com 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"}))

Além disso, as variantes do Schema Registry de from_avro e to_avro aceitam as seguintes opções:

Chave

Padrão

Valores válidos

Descrição

schemaId

Nenhuma

Inteiro de ID de esquema

ID do esquema do Confluent Schema Registry a ser usado ao decodificar dados Avro que foram codificados com um esquema incompatível com jsonFormatSchema. Aplica-se somente a from_avro .

confluent.schema.registry.*

Nenhuma

Qualquer valor de propriedade do cliente Confluent SR

Propriedades de configuração do cliente do Confluent Schema Registry. Passe qualquer propriedade do cliente Confluent SR usando este prefixo, por exemplo, confluent.schema.registry.basic.auth.user.info para credenciais de autenticação básica. Requerido para as variantes do Schema Registry de from_avro e to_avro.

CSV

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

Exemplo

O exemplo a seguir lê um arquivo CSV com um separador personalizado e o valor NULL :

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"}))

JSON

As funções JSON aceitam as mesmas opções que as opções correspondentes do DataFrame:

Exemplo

O exemplo a seguir escreve JSON com campos NULL ignorados e formatação amigável ativada:

Python
from pyspark.sql.functions import to_json

df = df.withColumn("json_str", to_json("struct_col", {"pretty": "true", "ignoreNullFields": "true"}))

Protobuf

from_protobuf e to_protobuf não usam uma fonte de dados baseada em arquivo. Os dados Protobuf são sempre lidos e gravados como colunas binárias usando essas funções. As opções são passadas como Map[String, String] e diferenciam maiúsculas de minúsculas.

Exemplo

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

Python
from pyspark.sql.functions import from_protobuf

df = df.withColumn("decoded", from_protobuf("proto_col", "MyMessage", "/path/to/descriptor.desc",
{"mode": "PERMISSIVE", "enums.as.ints": "true"}))

As funções do Protobuf utilizam as seguintes opções:

Chave

Padrão

Valores válidos

Descrição

mode

FAILFAST

FAILFAST, PERMISSIVE

Como gerenciar registros corrompidos. FAILFAST lança uma exceção. PERMISSIVE define campos malformados como nulo. Aplica-se a from_protobuf.

recursive.fields.max.depth

-1 (desabilitado)

0 to 10

Profundidade máxima de recursão para campos Protobuf recursivos. Defina como 0 para desativar o suporte a campo recursivo. Se aplica a from_protobuf.

convert.any.fields.to.json

false

true, false

Se deve converter campos Protobuf Any em strings JSON em vez de STRUCT. Aplica-se a from_protobuf.

emit.default.values

false

true, false

Indica se os campos devem ser emitidos com valores zero ou valores default (semântica do Proto3). Quando false, os campos com valores default são omitidos da saída. Aplica-se a from_protobuf.

enums.as.ints

false

true, false

Indica se os campos de enumeração devem ser renderizados como valores inteiros em vez de strings. Aplica-se a from_protobuf.

upcast.unsigned.ints

false

true, false

Indica se é necessário converter uint32 para Long e uint64 para Decimal(20,0) para evitar estouro de inteiro. Aplica-se a from_protobuf.

unwrap.primitive.wrapper.types

false

true, false

Se deve desembrulhar os tipos wrapper google.protobuf (por exemplo, Int32Value e StringValue) para seus tipos primitivos Spark correspondentes. Aplica-se a from_protobuf.

retain.empty.message.types

false

true, false

Indica se os tipos de mensagem Protobuf vazios devem ser mantidos no esquema de saída, inserindo uma coluna fictícia. Aplica-se a from_protobuf.

schema.registry.subject

Nenhuma

Qualquer cadeia de caracteres

Nome do assunto do Registro de Esquemas. Obrigatório ao usar as variantes do Schema Registry de from_protobuf e to_protobuf.

schema.registry.address

Nenhuma

Uma sequência host:port.

Endereço do Schema Registry (host e porta). Obrigatório ao usar as variantes do Schema Registry de from_protobuf e to_protobuf.

schema.registry.protobuf.name

Nenhuma

Qualquer cadeia de caracteres

Especifica qual mensagem Protobuf usar quando o assunto do registro de esquema contém várias mensagens. Opcional.

schema.registry.schema.evolution.mode

"restart"

"restart", "none"

Como as alterações de esquema são tratadas quando um ID de esquema mais recente é detectado em um registro de entrada. "restart" encerra a consulta com UnknownFieldException; configure os Jobs para reiniciar em caso de falha para aplicar as alterações. "none" ignora alterações de ID de esquema e analisa registros mais recentes com o esquema original.

confluent.schema.registry.<option>

Qualquer valor válido de opção de cliente do Registro de Esquema Confluente

Passe qualquer opção de cliente do Registro de Esquema Confluent usando o prefixo "confluent.schema.registry". Por exemplo, defina "confluent.schema.registry.basic.auth.credentials.source" como "USER_INFO" e "confluent.schema.registry.basic.auth.user.info" como "<KEY>:<SECRET>" para configurar a autenticação básica.

XML

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

Exemplo

O exemplo a seguir escreve XML com tags raiz e de linha personalizadas:

Python
from pyspark.sql.functions import to_xml

df = df.withColumn("xml_str", to_xml("struct_col", {"rootTag": "records", "rowTag": "record"}))