Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta página lista as opções de entrada e saída disponíveis para APIs do Spark que leem e gravam dados.
Opções do DataFrameReader
Use essas opções com DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO e Auto Loader para controlar como Azure Databricks lê arquivos de dados.
Example
O exemplo a seguir define multiLine para ler True arquivos JSON:
Python
df = spark.read.format("json").option("multiLine", True).load("/path/to/data")
Scala
val df = spark.read.format("json").option("multiLine", "true").load("/path/to/data")
SQL
SELECT * FROM read_files("/path/to/data", format => "json", multiLine => true)
Comum
As opções a seguir se aplicam a todos os formatos de arquivo.
| Chave | Default | Description |
|---|---|---|
ignoreCorruptFiles |
false |
Se os arquivos corrompidos devem ser ignorados. Se for verdade, os trabalhos do Spark continuarão a ser executados ao encontrar arquivos corrompidos e o conteúdo lido ainda será retornado. Pois COPY INTO, você pode observar arquivos corrompidos ignorados como numSkippedCorruptFiles na operationMetrics coluna do histórico do Delta Lake. Disponível no Databricks Runtime 11.3 LTS e versões superiores. |
ignoreMissingFiles |
false para Carregador Automático, true para COPY INTO (herdado) |
Se deve ignorar arquivos ausentes. Se for true, os trabalhos do Spark continuarão a ser executados ao encontrar arquivos ausentes e o conteúdo ainda será retornado. Disponível no Databricks Runtime 11.3 LTS e versões superiores. |
modifiedAfter |
None | Um timestamp opcional como filtro para importar apenas arquivos que têm um timestamp de modificação após o timestamp fornecido. |
modifiedBefore |
None | Um timestamp opcional como filtro para importar apenas arquivos que tenham um timestamp de modificação anterior ao timestamp fornecido. |
pathGlobFilter ou fileNamePattern |
None | Um padrão glob em potencial a ser fornecido para escolher arquivos. Equivalente a PATTERN em COPY INTO (herdado).
fileNamePattern pode ser usado em read_files. |
recursiveFileLookup |
false |
Quando true, essa opção pesquisa por diretórios aninhados mesmo que seus nomes não sigam um esquema de nomenclatura de partição como date=2019-07-01. |
Avro
| Chave | Default | Description |
|---|---|---|
avroSchema |
None | Esquema opcional fornecido por um usuário no formato Avro. Ao ler o Avro, essa opção pode ser definida como um esquema evoluído compatível, mas diferente do esquema Avro real. O esquema de desserialização é consistente com o esquema evoluído. Por exemplo, se você definir um esquema evoluído contendo uma coluna adicional com um valor padrão, o resultado da leitura também conterá a nova coluna. |
avroSchemaEvolutionMode |
none |
Como lidar com a evolução do esquema ao usar um registro de esquema. Valores válidos: none (ignore as alterações de esquema e continue o trabalho), restart (quando as alterações de esquema são detectadas, gera um UnknownFieldException e requer uma reinicialização do trabalho). |
datetimeRebaseMode |
LEGACY |
Controla a nova base dos valores DATE e TIMESTAMP entre calendários Juliano e Gregoriano Proléptico. Valores válidos: EXCEPTION, LEGACY e CORRECTED. |
enableStableIdentifiersForUnionType |
false |
Se deve usar nomes de campo estáveis para tipos de União do Avro. Quando habilitados, os nomes de campo de tipo de união são derivados de seus nomes de tipo em letras minúsculas (por exemplo, member_int, ). member_string Gera uma exceção se dois nomes de tipo forem idênticos após a letra minúscula. |
mergeSchema |
false |
Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo.
mergeSchema para Avro não flexibilizar tipos de dados. |
mode |
FAILFAST |
Modo analisador para lidar com registros corrompidos. Valores válidos: FAILFAST (gera uma exceção), PERMISSIVE (define campos malformados como nulos) DROPMALFORMED (descarta silenciosamente registros inválidos). |
readerCaseSensitive |
true |
Especifica o comportamento de confidencialidade de caso quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas. |
recursiveFieldMaxDepth |
None | A profundidade máxima de recursão para campos Avro recursivos. Defina para 1 truncar todos os campos recursivos, 2 para permitir um nível de recursão e assim por diante até 15. Quando campos não definidos ou 0recursivos não são permitidos. Valores válidos: 0 para 15. |
rescuedDataColumn |
None | Se é necessário coletar todos os dados que não podem ser analisados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas de coluna) a uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático.COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão.Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?. |
stableIdentifierPrefixForUnionType |
member_ |
O prefixo a ser usado para nomes de campo de tipo de união estável quando enableStableIdentifiersForUnionType=true. |
CSV
| Chave | Default | Description |
|---|---|---|
badRecordsPath |
None | O caminho para armazenar arquivos para registrar as informações sobre registros CSV incorretos. |
charToEscapeQuoteEscaping |
\0 |
O caractere usado para escapar do caractere usado para escapar aspas. Por exemplo, para o seguinte registro: [ " a\\", b ]:
|
columnNameOfCorruptRecord |
_corrupt_record |
Com suporte para Carregador Automático. Não há suporte para COPY INTO (herdado).A coluna para armazenar registros malformados e que não podem ser analisados. Se mode para análise for definida como DROPMALFORMED, essa coluna ficará vazia. |
comment |
\0 |
Define o caractere que representa um comentário de linha quando encontrado no início de uma linha de texto. Use '\0' para desabilitar o ato de ignorar comentários. |
dateFormat |
yyyy-MM-dd |
O formato para analisar cadeias de caracteres de data. |
emptyValue |
Cadeia vazia | Representação de cadeia de caracteres de um valor vazio. |
enableDateTimeParsingFallback |
false |
Se você deve voltar à data herdada e ao comportamento de análise de carimbo de data/hora quando um valor não pode ser analisado com o formato especificado. Quando false, as falhas de análise geram um erro ou produzem nulo dependendo modede . |
encoding ou charset |
UTF-8 |
O nome da codificação dos arquivos CSV. Confira java.nio.charset.Charset para obter a lista de opções.
UTF-16 e UTF-32 não podem ser usados quando multiline é true. |
enforceSchema |
true |
Se deve aplicar à força o esquema especificado ou inferido aos arquivos CSV. Se a opção estiver habilitada, os cabeçalhos de arquivos CSV serão ignorados. Essa opção será ignorada por padrão ao usar o Carregador Automático para resgatar dados e permitir a evolução do esquema. |
escape |
\ |
O caractere de escape a ser usado ao analisar os dados. |
extension |
csv |
A extensão de nome de arquivo esperada. Os arquivos sem essa extensão são filtrados durante as leituras. |
failOnUnknownFields |
false |
Se deve falhar quando o registro CSV contiver colunas não presentes no esquema. Quando false, colunas não reconhecidas são silenciosamente descartadas ou resgatadas dependendo rescuedDataColumnde . |
failOnWidenedFields |
false |
Se um valor de campo não pode ser analisado como o tipo de esquema declarado sem a ampliação. Quando false, valores ampliados por tipo são silenciosamente resgatados dependendo rescuedDataColumnde . A configuração failOnUnknownFields=true pode mascarar os efeitos dessa opção. |
header |
false |
Se os arquivos CSV contiverem um cabeçalho. O Carregador Automático presume que os arquivos tenham cabeçalhos ao inferir o esquema. |
ignoreLeadingWhiteSpace |
false |
Se deve ignorar espaços em branco iniciais para cada valor analisado. |
ignoreTrailingWhiteSpace |
false |
Se os espaços em branco no final de cada valor analisado devem ser ignorados. |
inferSchema |
false |
Se inferir os tipos de dados dos registros CSV analisados ou assumir que todas as colunas são de StringType. Requer uma passagem adicional dos dados se definido como true. Para o Carregador Automático, use cloudFiles.inferColumnTypes em vez disso. |
inputBufferSize |
1048576 (1 MB) |
O tamanho do buffer em bytes para o analisador CSV. Útil para ajustar o uso de memória ao analisar arquivos CSV grandes. Valores válidos: inteiros positivos. |
lineSep |
Nenhum, que abrange \r, \r\ne \n |
Uma cadeia de caracteres entre dois registros CSV consecutivos. |
locale |
US |
Um identificador java.util.Locale. Influencia a data padrão, o carimbo de data/hora e a análise decimal dentro do CSV. |
maxCharsPerColumn |
-1 |
Número máximo de caracteres esperados de um valor a ser analisado. Pode ser usado para evitar erros de memória. O padrão é -1, que significa ilimitado. Valores válidos: inteiros positivos ou -1 ilimitados. |
maxColumns |
20480 |
O limite rígido de quantas colunas um registro pode ter. Valores válidos: inteiros positivos. |
mergeSchema |
false |
Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. Habilitado por padrão para o Carregador Automático ao inferir o esquema. |
mode |
PERMISSIVE |
Modo analisador em torno do tratamento de registros malformados. Valores válidos: PERMISSIVE, , DROPMALFORMEDFAILFAST. |
multiLine |
false |
Se os registros CSV abrangem várias linhas. |
nanValue |
NaN |
A representação de cadeia de caracteres de um valor que não é um número ao analisar as colunas FloatType e DoubleType. |
negativeInf |
-Inf |
A representação da cadeia de caracteres de infinito negativo ao analisar as colunas FloatType ou DoubleType. |
nullValue |
Cadeia vazia | Representação de cadeia de caracteres de um valor nulo. |
parserCaseSensitive (preterido) |
false |
Durante a leitura de arquivos, se as colunas declaradas no cabeçalho devem ser alinhadas com o caso de esquema de forma sensível. Isso é true por padrão para o Auto Loader. As colunas que diferirem por caso serão resgatadas no rescuedDataColumn, se habilitado. Essa opção foi preterida em favor de readerCaseSensitive. |
positiveInf |
Inf |
A representação da cadeia de caracteres de infinito positivo ao analisar as colunas FloatType ou DoubleType. |
preferDate |
true |
Tenta inferir cadeias de caracteres como datas em vez de carimbo de data/hora quando possível. Você também deve usar a inferência de esquema, habilitando inferSchema ou usando cloudFiles.inferColumnTypes com o Carregador Automático. |
quote |
" |
O caractere usado para escapar valores em que o delimitador de campo faz parte do valor. |
readerCaseSensitive |
true |
Especifica o comportamento de confidencialidade de caso quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas. |
rescuedDataColumn |
None | Se é necessário coletar todos os dados que não podem ser analisados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas de coluna) a uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático. Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?.COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão. |
sep ou delimiter |
, |
A cadeia de caracteres do separador entre colunas. |
singleVariantColumn |
None | Quando definido como um nome de coluna, lê todo o registro CSV em uma única VariantType coluna com esse nome em vez de analisar cada campo em sua própria coluna. Requer header=true. |
skipRows |
0 |
O número de linhas desde o início do arquivo CSV que devem ser ignoradas (incluindo linhas com comentários e vazias). Se header for verdadeiro, o cabeçalho será a primeira linha não pulada e não comentada. Valores válidos: inteiros positivos ou 0. |
timeFormat |
HH:mm:ss |
O formato para analisar valores de TimeType coluna. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
O formato para análise de cadeias de caracteres de data/hora. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
O formato para analisar o carimbo de data/hora sem cadeias de caracteres de fuso horário (TimestampNTZType). |
timeZone |
None | O java.time.ZoneId a ser usado ao analisar carimbo de data/hora e datas. |
unescapedQuoteHandling |
STOP_AT_DELIMITER |
A estratégia para lidar com aspas sem escape. Opções permitidas:
|
Excel
| Chave | Default | Description |
|---|---|---|
dataAddress |
None | O intervalo de células a ser lido em Excel sintaxe. Se omitido, lê todas as células válidas da primeira planilha. Use "SheetName!C5:H10" para ler um intervalo de uma planilha nomeada, "C5:H10" ler um intervalo da primeira planilha ou "SheetName" ler todos os dados de uma planilha específica. |
headerRows |
0 |
Número de linhas iniciais a serem usadas como cabeçalhos de nome de coluna. Quando dataAddress é especificado, isso se aplica dentro do intervalo de células. Quando 0, os nomes de coluna são gerados automaticamente como _c1, , _c2etc _c3. Valores válidos: 0, 1. |
ignoreMissingSheet |
false |
Se deve ignorar silenciosamente os arquivos que não contêm a planilha especificada por dataAddress. Quando false, um erro é gerado se um arquivo está faltando na planilha solicitada. Aplica-se somente quando um nome de planilha é especificado em dataAddress. Valores válidos: true, false. |
includePhoneticRuns |
false |
Se deve incluir anotações fonéticas (como pinyina ou furigana) concatenadas aos valores de cadeia de caracteres de célula ao ler arquivos XLSX. Valores válidos: true, false. |
operation |
readSheet |
A operação a ser executada na pasta de trabalho Excel. Valores válidos: readSheet (lê dados de uma planilha) listSheets (retorna um struct com campos sheetIndex: long e sheetName: String para cada planilha). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Cadeia de caracteres de formato personalizado para valores de carimbo de data/hora sem fuso horário armazenados como cadeias de caracteres em Excel. Os formatos de data personalizados seguem os formatos dos padrões de datetime. |
dateFormat |
yyyy-MM-dd |
Cadeia de caracteres de formato personalizado para valores de cadeia de caracteres lidos como Date. Os formatos de data personalizados seguem os formatos dos padrões de datetime. |
JSON
| Chave | Default | Description |
|---|---|---|
allowBackslashEscapingAnyCharacter |
false |
Se as barras invertidas devem ser permitidas para escapar qualquer caractere que tenha sucesso. Se não estiver habilitado, somente os caracteres listados explicitamente pela especificação JSON poderão ser escapados. |
allowComments |
false |
Se deseja permitir o uso de comentários de estilo Java, C e C++ (variedades '/', '*' e '//') no conteúdo analisado ou não. |
allowNonNumericNumbers |
true |
Se o conjunto de tokens não-numéricos (NaN) deve ser permitido como valores de números flutuantes legais. |
allowNumericLeadingZeros |
false |
Indica se os números integrais podem ser iniciados com zeros adicionais (ignoráveis) (por exemplo, 000001). |
allowSingleQuotes |
true |
Se o uso de aspas simples (apóstrofo, caractere '\') deve ser permitido para cadeias de caracteres de citação (nomes e valores de cadeia de caracteres). |
allowUnquotedControlChars |
false |
Se as cadeias de caracteres JSON devem ou não ser permitidas para conter caracteres de controle sem escape (caracteres ASCII com valor inferior a 32, incluindo caracteres de tabulação e de alimentação de linha). |
allowUnquotedFieldNames |
false |
Se deseja permitir o uso de nomes de campo não citados, que são permitidos pelo JavaScript, mas não pela especificação JSON. |
alternateVariantEncoding |
None | A codificação usada para valores Variant no JSON de origem. Defina para Z85 decodificar valores Variant que foram codificados em Base85 em vez de armazenados como JSON embutido. |
badRecordsPath |
None | O caminho para armazenar arquivos para registrar as informações sobre registros JSON inválidos. Usar a opção badRecordsPath em uma fonte de dados baseada em arquivo tem as seguintes limitações:
|
columnNameOfCorruptRecord |
_corrupt_record |
A coluna para armazenar registros malformados e que não podem ser analisados. Se mode para análise for definida como DROPMALFORMED, essa coluna ficará vazia. |
dateFormat |
yyyy-MM-dd |
O formato para analisar cadeias de caracteres de data. |
dropFieldIfAllNull |
false |
Se as colunas de todos os valores nulos ou matrizes e estruturas vazias devem ser ignoradas durante a inferência de esquema. |
encoding ou charset |
UTF-8 |
O nome da codificação dos arquivos JSON. Confira java.nio.charset.Charset para obter uma lista de opções. Você não pode usar UTF-16 e UTF-32 quando multiline é true. |
inferTimestamp |
false |
Se deseja tentar e inferir as cadeias de carimbo de data/hora como um TimestampType. Quando definido como , a trueinferência de esquema pode levar visivelmente mais tempo. Você deve habilitar cloudFiles.inferColumnTypes para uso com o Carregador Automático. |
lineSep |
Nenhum, que abrange \r, \r\ne \n |
Uma cadeia de caracteres entre dois registros JSON consecutivos. |
locale |
US |
Um identificador java.util.Locale. Influencia o formato padrão de data, timestamp e interpretação decimal no JSON. |
maxNestingDepth |
500 |
A profundidade de aninhamento máxima permitida para objetos JSON e matrizes. Aumente esse valor para documentos profundamente aninhados. Valores válidos: inteiros positivos. |
maxNumLen |
1000 |
O comprimento máximo dos tokens numéricos na entrada JSON. Aumente esse valor para JSON com literais numéricos grandes. Valores válidos: inteiros positivos. |
maxStringLen |
ilimitado | O comprimento máximo dos valores de cadeia de caracteres na entrada JSON. Defina para limitar o uso de memória ao analisar JSON com cadeias de caracteres grandes. Valores válidos: inteiros positivos. |
mode |
PERMISSIVE |
Modo analisador em torno do tratamento de registros malformados. Valores válidos: PERMISSIVE, , DROPMALFORMEDFAILFAST. |
multiLine |
false |
Se os registros JSON devem se estender por várias linhas. |
prefersDecimal |
false |
Tenta inferir cadeias de caracteres como DecimalType em vez de flutuar ou tipo duplo quando possível. Você também deve usar a inferência de esquema, habilitando inferSchema ou usando cloudFiles.inferColumnTypes com o Carregador Automático. |
primitivesAsString |
false |
Se deve inferir tipos primitivos como números e boolianos como StringType. |
readerCaseSensitive |
true |
Especifica o comportamento de confidencialidade de caso quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas. Disponível no Databricks Runtime 13.3 e superior. |
rescuedDataColumn |
None | Se é necessário coletar todos os dados que não podem ser analisados devido a uma incompatibilidade de tipo de dados ou incompatibilidade de esquema (incluindo maiúsculas de coluna) para uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático. Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?.COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão. |
singleVariantColumn |
None | Se deve ingerir todo o documento JSON, analisado em uma única coluna Variant com a cadeia de caracteres especificada como o nome da coluna. Se não for definido, os campos JSON serão ingeridos em suas próprias colunas. Valores válidos: qualquer cadeia de caracteres. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
O formato para análise de cadeias de caracteres de data/hora. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
O formato para analisar o carimbo de data/hora sem cadeias de caracteres de fuso horário (TimestampNTZType). |
timeZone |
None | O java.time.ZoneId a ser usado ao analisar carimbo de data/hora e datas. |
upgradeExceptionAsBadRecord |
false |
Se deve tratar exceções de atualização de tipo (por exemplo, quando um valor não pode ser ampliado para o tipo de coluna declarado) como registros inválidos em vez de gerar uma exceção. |
Kafka
Para obter a lista completa de opções de leitor do Kafka, consulte as opções do Kafka do DataStreamReader. As opções a seguir se aplicam somente às leituras em lote usando spark.read.format("kafka").
| Chave | Default | Description |
|---|---|---|
endingOffsets |
latest |
Onde parar de ler. Valores válidos: latestou uma cadeia de caracteres JSON de deslocamentos para cada partição, como {"topicA":{"0":50,"1":-1}}.Na cadeia de caracteres JSON, -1 é o deslocamento mais recente.
-2, que é o deslocamento mais antigo, não é permitido como um deslocamento final. |
endingOffsetsByTimestamp |
None | Deslocamentos finais por partição especificados como carimbos de data/hora em milissegundos. Valores válidos: uma cadeia de caracteres JSON de carimbos de data/hora para cada partição, como {"topicA":{"0":2000,"1":3000}}. |
endingTimestamp |
None | Carimbo de data/hora final global em milissegundos aplicado a todas as partições. Valores válidos: inteiros não negativos. |
ORC
| Chave | Default | Description |
|---|---|---|
mergeSchema |
false |
Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. |
Parquet
| Chave | Default | Description |
|---|---|---|
datetimeRebaseMode |
LEGACY |
Controla a nova base dos valores DATE e TIMESTAMP entre calendários Juliano e Gregoriano Proléptico. Valores válidos: EXCEPTION, LEGACY e CORRECTED. |
int96RebaseMode |
LEGACY |
Controla a nova base dos valores de carimbo de data/hora INT96 entre calendários Juliano e Gregoriano Proléptico. Valores válidos: EXCEPTION, LEGACY e CORRECTED. |
mergeSchema |
false |
Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. |
readerCaseSensitive |
true |
Especifica o comportamento de confidencialidade de caso quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas. |
rescuedDataColumn |
None | Se é necessário coletar todos os dados que não podem ser analisados devido a: uma incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas de coluna) a uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático. Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?.COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão. |
Repositório de estado
Use essas opções com spark.read.format("statestore") ou a read_statestore função com valor de tabela para ler dados de estado de Streaming Estruturado. Consulte a seção Ler informações de estado do Streaming Estruturado.
| Chave | Default | Description |
|---|---|---|
batchId |
ID do lote mais recente | O lote de destino do qual ler. Use para consultar um estado anterior da consulta. O lote precisa ser confirmado, mas ainda não foi limpo. Valores válidos: inteiros não negativos. |
operatorId |
0 |
O operador de destino do qual ler. Use quando a consulta tiver vários operadores com estado. Valores válidos: inteiros não negativos. |
storeName |
DEFAULT |
O nome do repositório de estado de destino do qual ler. Use quando o operador com estado tiver várias instâncias do repositório de estado. Você deve especificar uma storeName junção de fluxo de fluxo ou joinSide de fluxo, mas não ambas. Valores válidos: qualquer cadeia de caracteres. |
joinSide |
None | O lado de destino do qual ler para uma junção de fluxo de fluxo. Você deve especificar uma storeName junção de fluxo de fluxo ou joinSide de fluxo, mas não ambas. Valores válidos: left, right. |
snapshotStartBatchId |
None | A ID do lote do instantâneo a ser usado como ponto de partida ao ler o estado. O leitor recria o estado reproduzindo as alterações desse instantâneo até batchId. Útil quando um instantâneo está corrompido. Deve especificar junto com snapshotPartitionId. Não é possível usar com readChangeFeed. Dá suporte ao repositório de estado com suporte do HDFS e ao repositório de estado do RocksDB com o ponto de verificação de caixa de alteração habilitado. Disponível no Databricks Runtime 15.4 LTS e superior. Valores válidos: inteiros não negativos. |
snapshotPartitionId |
None | Se especificado, a consulta lerá apenas essa partição. Deve especificar junto com snapshotStartBatchId. Não é possível usar com readChangeFeed. Disponível no Databricks Runtime 15.4 LTS e superior. Valores válidos: inteiros não negativos. |
readChangeFeed |
false |
Quando true, retorna alterações de estado em um intervalo especificado de lotes entre changeStartBatchId e changeEndBatchId. Requer changeStartBatchId. Não é possível usar com joinSide, batchId, snapshotStartBatchIdou snapshotPartitionId. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: true, false.Para obter detalhes, consulte Ler alterações de estado de Streaming Estruturado. |
changeStartBatchId |
None | A ID do lote inicial para o intervalo de feed de alterações. Necessário quando readChangeFeed é true. Aplica-se somente quando readChangeFeed é definido como true. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: inteiros não negativos. |
changeEndBatchId |
ID do lote mais recente | A ID do lote final para o intervalo de feed de alterações. Deve ser maior ou igual a changeStartBatchId. Aplica-se somente quando readChangeFeed é definido como true. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: inteiros não negativos. |
stateVarName |
None | O nome da variável de estado a ser lido. O nome da variável de estado é o nome exclusivo de cada variável dentro da init função de um StatefulProcessor usado pelo transformWithState operador. Necessário ao usar o transformWithState operador. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: qualquer cadeia de caracteres. |
readRegisteredTimers |
false |
Quando true, lê os temporizadores registrados usados pelo transformWithState operador. Aplica-se apenas ao transformWithState operador. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: true, false. |
flattenCollectionTypes |
true |
Quando true, nivela os registros retornados para variáveis de estado de mapa e lista. Quando false, retorna registros como um SQL Array do Spark ou Map. Aplica-se apenas ao transformWithState operador. Disponível no Databricks Runtime 16.4 LTS e superior. Valores válidos: true, false. |
Texto
| Chave | Default | Description |
|---|---|---|
encoding |
UTF-8 |
O nome da codificação do separador de linha do arquivo de texto. Para obter uma lista de opções, consulte java.nio.charset.Charset. O conteúdo do arquivo não é afetado por essa opção e é lido as-is. |
lineSep |
Nenhum, que abrange \r, \r\n e \n |
Uma cadeia de caracteres entre dois registros TEXT consecutivos. |
wholeText |
false |
Se um arquivo deve ser lido como um único registro. |
XML
| Chave | Default | Description |
|---|---|---|
rowTag |
None | A marca de linha de arquivos XML a ser tratada como uma linha. No exemplo o XML <books> <book><book>...<books>, o valor apropriado é book. Trata-se de uma opção obrigatória. |
samplingRatio |
1.0 |
Define uma fração de linhas usadas para inferência de esquema. As funções internas do XML ignoram essa opção. Valores válidos: 0.0 para 1.0. |
excludeAttribute |
false |
Se deve excluir os atributos em elementos. |
mode |
None | Modo para lidar com registros corrompidos durante a análise.
PERMISSIVE: para registros corrompidos, coloca a cadeia de caracteres malformada em um campo configurado por columnNameOfCorruptRecord e define os campos malformados como null. Para manter os registros corrompidos, é possível definir um campo do tipo string denominado columnNameOfCorruptRecord em um esquema definido pelo usuário. Se um esquema não tiver o campo, os registros corrompidos serão descartados durante a análise. Ao inferir um esquema, o analisador adiciona implicitamente um campo columnNameOfCorruptRecord em um esquema de saída.
DROPMALFORMED: ignora os registros corrompidos. Esse modo não dá suporte para funções internas de XML.
FAILFAST: gera uma exceção quando o analisador encontra registros corrompidos. |
inferSchema |
true |
Se true, tenta inferir um tipo apropriado para cada coluna DataFrame resultante. Se false, todas as colunas resultantes serão do tipo string. As funções internas do XML ignoram essa opção. |
columnNameOfCorruptRecord |
spark.sql.columnNameOfCorruptRecord |
Permite renomear o novo campo que contém uma cadeia de caracteres malformada criada por PERMISSIVE modo. |
attributePrefix |
None | O prefixo de atributos para diferenciar atributos de elementos. Esse será o prefixo para nomes de campo. O padrão é _. Pode estar vazio para leitura de XML, mas não para gravação. Também se aplica às opções XML do DataFrameWriter. |
valueTag |
_VALUE |
A marca usada para os dados de caracteres dentro de elementos que também têm elementos de atributo(s) ou elemento(s) filho(s). O usuário pode especificar o campo valueTag no esquema ou ele será adicionado automaticamente durante a inferência do esquema quando os dados de caracteres estiverem presentes em elementos com outros elementos ou atributos. Também se aplica às opções XML do DataFrameWriter. |
encoding |
UTF-8 |
Para leitura, decodifique os arquivos XML de acordo com o tipo de codificação fornecido. Para gravação, especifique a codificação (conjunto de caracteres) dos arquivos XML salvos. As funções internas do XML ignoram essa opção. Também se aplica às opções XML do DataFrameWriter. |
ignoreSurroundingSpaces |
true |
Se os espaços em branco ao redor devem ser ignorados. Os dados de caracteres somente com espaços em branco são ignorados. |
rowValidationXSDPath |
None | Caminho para um arquivo XSD opcional usado para validar o XML de cada linha individualmente. As linhas que não são validadas são tratadas como erros de análise. O XSD não afeta de outra forma o esquema, seja fornecido ou inferido. |
ignoreNamespace |
false |
Se true, os prefixos dos namespaces em elementos XML e atributos serão ignorados. As marcas <abc:author> e <def:author>, por exemplo, são tratadas como se ambas fossem apenas <author>. Os namespaces não podem ser ignorados no elemento rowTag, somente em seus filhos de leitura. A análise de XML não tem reconhecimento de namespace, mesmo se false. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Cadeia de caracteres do formato de carimbo de data/hora personalizado que segue o formato padrão data/hora. Isso se aplica ao tipo timestamp. Também se aplica às opções XML do DataFrameWriter. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Cadeia de caracteres de formato personalizado para carimbo de data/hora sem fuso horário que segue o formato padrão de data e hora. Isso se aplica ao tipo TimestampNTZType. Também se aplica às opções XML do DataFrameWriter. |
dateFormat |
yyyy-MM-dd |
Formato de data personalizada que segue o padrão de data e hora. Isso se aplica ao tipo de data. Também se aplica às opções XML do DataFrameWriter. |
locale |
en-US |
Define uma localidade como uma marca de idioma no formato IETF BCP 47. Por exemplo, locale é utilizado durante a análise de datas e timestamps. |
nullValue |
cadeia de caracteres null |
Define a representação em cadeia de caracteres de um valor nulo. Quando esse valor é null, o analisador não escreve atributos e elementos para campos. Também se aplica às opções XML do DataFrameWriter. |
readerCaseSensitive |
true |
Especifica o comportamento da diferenciação de maiúsculas e minúsculas quando rescuedDataColumn está habilitado. Se for true, salve as colunas de dados cujos nomes diferem por caso do esquema. Quando false, leia os dados de maneira que não diferencia maiúsculas de minúsculas. |
rescuedDataColumn |
None | Se deve-se coletar todos os dados que não podem ser analisados devido a incompatibilidade de tipos de dados e de esquema (incluindo a diferença de caixa das colunas) em uma coluna separada. Essa coluna é incluída por padrão ao usar o Carregador Automático. Para obter mais detalhes, consulte Qual é a coluna de dados resgatada?.
COPY INTO (herdado) não dá suporte à coluna de dados resgatada porque você não pode definir manualmente o esquema usando COPY INTO. O Databricks recomenda o uso do Carregador Automático para a maioria dos cenários de ingestão. |
singleVariantColumn |
none |
Especifica o nome da única coluna variante. Se essa opção for especificada para leitura, analise todo o registro XML em uma única coluna Variant com o valor de cadeia de caracteres de opção fornecido como o nome da coluna. Se essa opção for fornecida para gravação, escreva o valor da única coluna Variant em arquivos XML. Também se aplica às opções XML do DataFrameWriter. |
useLegacyXMLParser |
true |
Se deve usar o analisador XML herdado. O analisador herdado tem uma validação menos rigorosa para conteúdo malformado, mas é menos eficiente em termos de memória. Defina para false aceitar o analisador padrão mais estrito. |
wildcardColName |
xs_any |
O nome da coluna usado para capturar elementos XML que correspondem ao elemento de esquema curinga (xs:any). Não pode ser usado junto com rescuedDataColumn. |
Opções do DataStreamReader
Use essas opções para DataStreamReader.option() configurar leituras de streaming de tabelas delta lake e outras fontes baseadas em arquivo.
Para obter opções de formato de arquivo (JSON, CSV, Parquet e outros), consulte as opções DataFrameReader.
Para opções do Carregador Automático (cloudFiles.*), consulte o Carregador Automático.
Example
O exemplo a seguir define maxFilesPerTrigger para 10 um fluxo de tabela delta lake:
Python
df = spark.readStream.format("delta").option("maxFilesPerTrigger", 10).load("/path/to/delta-table")
Scala
val df = spark.readStream.format("delta").option("maxFilesPerTrigger", "10").load("/path/to/delta-table")
Comum
As opções a seguir se aplicam a tabelas delta lake e outras fontes de streaming baseadas em arquivo.
| Chave | Default | Description |
|---|---|---|
cleanSource |
off |
Como lidar com arquivos de origem depois que eles são processados pelo fluxo. Valores válidos: off (nenhuma ação), delete (excluir permanentemente o arquivo de origem) archive (mover para sourceArchiveDir). Quando definido como archive, sourceArchiveDir também deve ser definido. Não se aplica ao streaming de tabela delta lake. |
fileNameOnly |
false |
Se deve identificar arquivos já processados por nome de arquivo apenas em vez de por caminho completo. Quando trueos arquivos em caminhos diferentes com o mesmo nome de arquivo são tratados como o mesmo arquivo e não são reprocessados. Não se aplica ao streaming de tabela delta lake. |
latestFirst |
false |
Se os arquivos modificados mais recentemente devem ser processados primeiro em cada microlote. Útil quando você deseja processar os dados mais recentes o mais rápido possível. Quando true e maxFilesPerTrigger ou maxBytesPerTrigger é definido, maxFileAge é ignorado. Não se aplica ao streaming de tabela delta lake. |
maxBytesPerTrigger |
None | Máximo flexível para a quantidade de dados processados para cada microlote. Um lote poderá processar mais do que o limite se a menor unidade de entrada exceder. Quando usado junto com maxFilesPerTrigger, o micro-lote processa dados até que qualquer limite seja atingido primeiro. Valores válidos: inteiros positivos.Para o Carregador Automático, use cloudFiles.maxBytesPerTrigger em vez disso. Consulte Common. |
maxCachedFiles |
10000 |
Número máximo de arquivos não processados para armazenar em cache para microlotes subsequentes. Definido para 0 desativar o cache. Aumente esse valor quando o diretório de origem contiver muitos arquivos novos para cada gatilho. Não se aplica ao streaming de tabela delta lake. Valores válidos: inteiros positivos ou 0. |
maxFileAge |
7d |
Idade máxima dos arquivos considerados para processamento, em relação ao carimbo de data/hora do arquivo modificado mais recentemente em vez da hora atual do sistema. Arquivos mais antigos que esse limite são ignorados. Aceita cadeias de caracteres de duração como 7d ou 4h. Ignorado quando latestFirst está true e maxFilesPerTrigger ou maxBytesPerTrigger está definido. Não se aplica ao streaming de tabela delta lake. |
maxFilesPerTrigger |
1000 para Delta Lake e Carregador Automático. Não há máximo para outras fontes baseadas em arquivo. |
Limite superior para o número de novos arquivos processados em cada microlote. Quando usado junto com maxBytesPerTrigger, o micro-lote processa dados até que qualquer limite seja atingido primeiro. Valores válidos: inteiros positivos.Para o Carregador Automático, use cloudFiles.maxFilesPerTrigger em vez disso. Consulte Common. |
sourceArchiveDir |
None | Caminho para o diretório de arquivo morto quando cleanSource é definido como archive. Os arquivos de origem são movidos para esse caminho após o processamento, preservando sua estrutura de diretório relativa. Não se aplica ao streaming de tabela delta lake. |
Carregador Automático
Use essas opções com a origem para configurar o cloudFilesCarregador Automático para ingestão de streaming do armazenamento em nuvem. As opções específicas à origem cloudFiles são prefixadas cloudFiles para mantê-las em um namespace separado de outras opções de origem de Streaming Estruturado .
Comum
| Chave | Default | Description |
|---|---|---|
cloudFiles.allowOverwrites |
false |
Para permitir alterações no arquivo do diretório de entrada a fim de substituir os dados existentes ou não. Para advertências de configuração, consulte O Carregador Automático processa o arquivo novamente quando o arquivo é acrescentado ou substituído?. |
cloudFiles.backfillInterval |
None | O Carregador Automático pode disparar backfills assíncronos em um intervalo específico. Por exemplo, 1 day para preencher lacunas diariamente ou 1 week para completar dados semanalmente. Para obter mais informações, consulte Acionar preenchimentos regulares usando cloudFiles.backfillInterval.Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true. |
cloudFiles.cleanSource |
OFF |
Se deseja excluir automaticamente arquivos processados do diretório de entrada. Quando definido como OFF (padrão), nenhum arquivo é excluído.Quando definido como DELETE, o Carregador Automático exclui automaticamente os arquivos 30 dias após serem processados. Para fazer isso, o Carregador Automático deve ter permissões de gravação no diretório de origem.Quando definido como MOVE, o Carregador Automático move automaticamente os arquivos para o local especificado em cloudFiles.cleanSource.moveDestination 30 dias após serem processados. Para fazer isso, o Carregador Automático deve ter permissões de gravação no diretório de origem e também na localização de movimentação.Um arquivo é considerado processado quando tem um valor não nulo para commit_time o resultado da cloud_files_state função com valor de tabela. Consulte TVF cloud_files_state. A espera adicional de 30 dias após o processamento pode ser configurada usando cloudFiles.cleanSource.retentionDuration.Examine as seguintes considerações antes de habilitar cloudFiles.cleanSource:
Disponível no Databricks Runtime 16.4 e superior. |
cloudFiles.cleanSource.retentionDuration |
30 days |
Tempo de espera antes que os arquivos processados se tornem candidatos ao arquivamento com cleanSource. Deve ser superior a 7 dias para DELETE. Nenhuma restrição mínima para MOVE.O valor é uma cadeia de caracteres CalendarInterval . Por exemplo, "14 days", "30 days", "2 weeks" ou "1 month".Disponível no Databricks Runtime 16.4 e superior. |
cloudFiles.cleanSource.moveDestination |
None | Caminho para arquivar arquivos processados quando cloudFiles.cleanSource estiver definido como MOVE. Pode ser um caminho de armazenamento em nuvem ou um caminho de volume do Catálogo do Unity (por exemplo, /Volumes/my_catalog/my_schema/my_volume/archive/).O local de movimentação deve:
O Carregador Automático deve ter permissões de gravação nesse diretório. Disponível no Databricks Runtime 16.4 e superior. |
cloudFiles.format |
Nenhum (opção necessária) | O formato do arquivo de dados no caminho de origem. Os valores válidos incluem:
|
cloudFiles.includeExistingFiles |
true |
Para incluir arquivos existentes no caminho de entrada de processamento de fluxo ou somente para processar novos arquivos chegando após a configuração inicial. Essa opção é avaliada somente quando você inicia um fluxo pela primeira vez. Alterar essa opção depois de reiniciar o fluxo não tem nenhum efeito. |
cloudFiles.inferColumnTypes |
false |
Decidir se deve inferir os tipos exatos das colunas ao utilizar a inferência de esquema. Por padrão, as colunas são inferidas como cadeias de caracteres ao inferir conjuntos de dados JSON e CSV. Consulte a inferência de esquema para obter mais detalhes. |
cloudFiles.maxBytesPerTrigger |
None | O número máximo de novos bytes a serem processados em cada gatilho. Você pode especificar uma cadeia de caracteres de byte, como 10g, para limitar cada microlote a 10 GB de dados. Trata-se de um limite máximo não rígido. Se você tiver arquivos que são de 3 GB cada, o Azure Databricks processará 12 GB em um microlote. Quando usado em conjunto com o cloudFiles.maxFilesPerTrigger, o Azure Databricks consome até o limite inferior de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, o que for atingido primeiro. Essa opção não tem efeito quando usada com Trigger.Once() (Trigger.Once() está preterido).No Databricks Runtime 18.0 e superior, essa opção é configurada dinamicamente e não precisa ser definida manualmente. |
cloudFiles.maxFileAge |
None | Por quanto tempo um evento de arquivo é controlado para fins de eliminação de duplicação. O Databricks não recomenda ajustar esse parâmetro, a menos que você esteja ingerindo dados na ordem de milhões de arquivos por hora. Consulte a seção sobre rastreamento de eventos de arquivo para obter mais detalhes. O ajuste cloudFiles.maxFileAge muito agressivo pode causar problemas de qualidade de dados, como ingestão duplicada ou arquivos ausentes. Por isso, o Databricks recomenda uma configuração conservadora para cloudFiles.maxFileAge, como 90 dias, que é semelhante ao que as soluções de ingestão de dados comparáveis recomendam. |
cloudFiles.maxFilesPerTrigger |
1000 |
Número máximo de novos arquivos a serem processados em cada gatilho. Quando usado em conjunto com o cloudFiles.maxBytesPerTrigger, o Azure Databricks consome até o limite inferior de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, o que for atingido primeiro. Essa opção não tem efeito quando usada com Trigger.Once() (preterido).No Databricks Runtime 18.0 e superior, essa opção é configurada dinamicamente e não precisa ser definida manualmente. |
cloudFiles.partitionColumns |
None | Uma lista separada por vírgulas de colunas de partição no estilo Hive que você gostaria de inferir da estrutura de diretório dos arquivos. As colunas de partição no estilo Hive são pares chave-valor combinados por um sinal de igualdade, como <base-path>/a=x/b=1/c=y/file.format. Neste exemplo, as colunas de partição são a, b e c. Por padrão, essas colunas são adicionadas automaticamente ao seu esquema se você estiver usando a inferência de esquema e fornecer o <base-path> para carregar dados. Se você fornecer um esquema, o Carregador automático espera que essas colunas sejam incluídas no esquema. Se você não quiser essas colunas no seu esquema, poderá especificar "" para ignorar essas colunas. Além disso, é possível usar essa opção quando quiser que as colunas sejam inferidas a partir do caminho do arquivo em estruturas de diretório complexas, como no exemplo a seguir:<base-path>/year=2022/week=1/file1.csv<base-path>/year=2022/month=2/day=3/file2.csv<base-path>/year=2022/month=2/day=4/file3.csvEspecificar cloudFiles.partitionColumns como year,month,day retorna year=2022 para file1.csv, mas as colunas month e day são null.month e day são analisados corretamente para file2.csv e file3.csv. |
cloudFiles.schemaEvolutionMode |
addNewColumnsquando um esquema não for fornecido, caso contrário, none |
Modo para a evolução do esquema à medida que novas colunas são descobertas nos dados. Por padrão, as colunas são inferidas como cadeias de caracteres ao inferir conjuntos de dados JSON. Confira a evolução do esquema para obter mais detalhes. |
cloudFiles.schemaHints |
None | Informações de esquema que você fornece para o Auto Loader durante a inferência de esquema. Confira as dicas de esquema para obter mais detalhes. |
cloudFiles.schemaLocation |
Nenhum (necessário para inferir o esquema) | Local para armazenar o esquema deduzido e as alterações subsequentes. Consulte a inferência de esquema para obter mais detalhes. |
cloudFiles.useStrictGlobber |
false |
Se deve usar um globber estrito que corresponda ao comportamento padrão de globbing de outras fontes de arquivo no Apache Spark. Consulte padrões comuns de carregamento de dados para obter mais detalhes. Disponível no Databricks Runtime 12.2 LTS e superior. |
cloudFiles.validateOptions |
true |
Para validar as opções de Carregador Automático e retornar um erro em opções desconhecidas ou inconsistentes ou não. |
Listagem de diretório
| Chave | Default | Description |
|---|---|---|
cloudFiles.useIncrementalListing (preterido) |
auto no Databricks Runtime 17.2 e abaixo, false no Databricks Runtime 17.3 e superior |
Esse recurso foi preterido. O Databricks recomenda usar o modo de notificação de arquivo com eventos de arquivo em vez de cloudFiles.useIncrementalListing.Se deve usar a listagem incremental em vez da listagem completa no modo de listagem de diretório. Por padrão, o carregador automático fará o melhor para detectar automaticamente se determinado diretório é aplicável à listagem incremental. Você pode usar explicitamente a listagem incremental ou usar a listagem de diretório completa, definindo-a como true ou false, respectivamente.Habilitar incorretamente a listagem incremental em um diretório não ordenado lexicamente impede que o Carregador Automático descubra novos arquivos. Funciona com o Azure Data Lake Storage ( abfss://), S3 (s3://) e GCS (gs://).Disponível no Databricks Runtime 9.1 LTS e superior. Valores disponíveis: auto, true, false |
Notificação de arquivo
Para obter informações sobre como configurar o modo de notificação de arquivo, incluindo permissões de nuvem necessárias, instruções de instalação e métodos de autenticação, consulte Configurar fluxos do Carregador Automático no modo de notificação de arquivo.
| Chave | Default | Description |
|---|---|---|
cloudFiles.fetchParallelism |
1 |
Número de threads a ser usado ao buscar mensagens do serviço de colocação na fila. Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true. |
cloudFiles.pathRewrites |
None | Necessário somente se você especificar um queueUrl que receba notificações de arquivo de vários buckets S3 e quiser usar pontos de montagem configurados para acessar dados nesses contêineres. Use essa opção para reescrever o prefixo do caminho bucket/key com o ponto de montagem. Somente prefixos podem ser reescritos. Por exemplo, para a configuração {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}, o caminho s3://<databricks-mounted-bucket>/path/2017/08/fileA.json é reescrito para dbfs:/mnt/data-warehouse/2017/08/fileA.json.Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true. |
cloudFiles.resourceTag |
None | Série de pares de etiquetas chave-valor para ajudar a associar e identificar recursos relacionados, por exemplo:cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue") .option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")Para obter mais informações sobre a AWS, consulte tags de alocação de custos do Amazon SQS e configurar tags para um tópico do Amazon SNS. (1) Para saber mais sobre o Azure, consulte Nomenclatura de filas e metadados e a cobertura de properties.labels em Assinaturas de eventos. O Carregador automático armazena esses pares de marca de chave-valor em JSON como rótulos.
(1)Para obter mais informações sobre o GCP, consulte Como relatar o uso com rótulos. (1) Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true. Em vez disso, defina marcas de recurso usando o console do provedor de nuvem. |
cloudFiles.useManagedFileEvents |
false |
Quando definido como true, o Carregador Automático usa o serviço de eventos de arquivo para descobrir arquivos em seu local externo. Você só poderá usar essa opção se o caminho de carga estiver em um local externo com eventos de arquivo habilitados. Consulte Use o modo de notificação de arquivo com eventos de arquivos.Os eventos de arquivo fornecem desempenho no nível de notificações na descoberta de arquivos, pois o Carregador Automático pode descobrir novos arquivos após a última execução. Ao contrário da listagem de diretórios, esse processo não precisa listar todos os arquivos no diretório. Há algumas situações em que o Carregador Automático usa a listagem de diretórios mesmo que a opção de eventos de arquivo esteja habilitada:
Veja Quando o Carregador Automático com eventos de arquivo usa a listagem de diretórios? Para obter uma lista abrangente de situações em que o Carregador Automático usa a listagem de diretórios com essa opção. Disponível no Databricks Runtime 14.3 LTS e superior. |
cloudFiles.listOnStart |
false |
Quando definido como true, o Carregador Automático executa uma listagem de diretório completa quando o fluxo é iniciado, em vez de começar com o token de continuação no ponto de verificação. Use essa opção para se recuperar de erros, como CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Veja como fazer para me recuperar de um CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN erro?. |
cloudFiles.useNotifications |
false |
Para usar o modo de notificação de arquivo a fim de determinar quando há novos arquivos ou não. Se false, use o modo de listagem de diretórios. Consulte Comparar os modos de detecção de arquivos do Carregador Automático.Não utilize quando cloudFiles.useManagedFileEvents estiver configurado como true. |
(1) O Carregador automático adiciona os seguintes pares de marca de chave-valor por padrão com base no melhor esforço:
-
vendor:Databricks -
path: Local de onde os dados são carregados. Não disponível em GCP devido à limitações de rotulagem. -
checkpointLocation: a posição do ponto de controle do fluxo. Não disponível em GCP devido à limitações de rotulagem. -
streamId: Identificador exclusivo global do fluxo.
O Databricks reserva esses nomes de chave e você não pode substituir seus valores.
Específico da nuvem
O Carregador Automático fornece opções para configurar a infraestrutura de nuvem para o modo de notificação de arquivo. Para obter as permissões de nuvem necessárias e as instruções de instalação, consulte Configurar fluxos do Carregador Automático no modo de notificação de arquivo.
AWS
Forneça as seguintes opções somente se você escolher cloudFiles.useNotifications = true e quiser que o Carregador Automático configure os serviços de notificação para você:
| Chave | Default | Description |
|---|---|---|
cloudFiles.region |
A região da instância do EC2 | A região onde reside o bucket S3 de origem e onde você deseja criar os serviços SNS e SQS do AWS. |
| Chave | Default | Description |
|---|---|---|
cloudFiles.restrictNotificationSetupToSameAWSAccountId |
false |
Permitir somente notificações de eventos de buckets do AWS S3 na mesma conta que o tópico SNS. Quando verdadeiro, o Auto Loader aceita notificações de eventos apenas de buckets do AWS S3 que estejam na mesma conta do tópico SNS. Quando false, a política de acesso não restringe as configurações do bucket entre contas e do tópico SNS. Isso é útil quando o tópico SNS e o caminho do bucket são associados a contas diferentes.Disponível no Databricks Runtime 17.2 e superior. |
Forneça a opção a seguir somente se você escolher cloudFiles.useNotifications = true e desejar que o Carregador automático use uma fila já configurada:
| Chave | Default | Description |
|---|---|---|
cloudFiles.queueUrl |
None | URL da fila do SQS. Se fornecido, o Carregador automático consumirá diretamente eventos dessa fila em vez de configurar os próprios serviços SNS e SQS da AWS. |
Opções de autenticação do AWS
Forneça a seguinte opção de autenticação para usar uma credencial de serviço do Databricks:
| Chave | Default | Description |
|---|---|---|
databricks.serviceCredential |
None | O nome da credencial de serviço do seu Databricks. Disponível no Databricks Runtime 16.1 e superior. |
Quando as credenciais de serviço do Databricks ou as funções IAM não estiverem disponíveis, você poderá fornecer as seguintes opções de autenticação:
| Chave | Default | Description |
|---|---|---|
cloudFiles.awsAccessKey |
None | ID da chave de acesso da AWS do usuário. Deve ser fornecido com cloudFiles.awsSecretKey. |
cloudFiles.awsSecretKey |
None | Chave de acesso secreta da AWS do usuário. Deve ser fornecido com cloudFiles.awsAccessKey. |
cloudFiles.roleArn |
None | A ARN de uma função IAM a ser assumida, se necessário. A função pode ser assumida a partir do perfil de instância do cluster ou fornecendo credenciais com cloudFiles.awsAccessKey e cloudFiles.awsSecretKey. |
cloudFiles.roleExternalId |
None | Identificador a ser fornecido ao assumir uma função usando cloudFiles.roleArn. |
cloudFiles.roleSessionName |
None | Um nome de sessão opcional a ser usado ao assumir uma função usando cloudFiles.roleArn. |
cloudFiles.stsEndpoint |
None | Ponto de extremidade opcional a ser usado para acessar o STS da AWS ao assumir uma função usando cloudFiles.roleArn. |
Azure
Você deverá fornecer valores para todas as opções a seguir se especificar cloudFiles.useNotifications = true e quiser que o Carregador automático configure os serviços de notificação para você:
| Chave | Default | Description |
|---|---|---|
cloudFiles.resourceGroup |
None | O grupo de recursos Azure no qual a conta de armazenamento é criada. |
cloudFiles.subscriptionId |
None | A ID da Assinatura Azure na qual o grupo de recursos é criado. |
databricks.serviceCredential |
None | O nome da credencial de serviço do seu Databricks. Disponível no Databricks Runtime 16.1 e superior. |
Se uma credencial de serviço do Databricks não estiver disponível, você poderá fornecer as seguintes opções de autenticação:
| Chave | Default | Description |
|---|---|---|
cloudFiles.clientId |
None | O ID do cliente ou ID do aplicativo da entidade de serviço. |
cloudFiles.clientSecret |
None | O segredo do cliente da entidade de serviço. |
cloudFiles.connectionString |
None | Cadeia de conexão da conta de armazenamento, com base na chave de acesso da conta ou na assinatura de acesso compartilhado (SAS). |
cloudFiles.tenantId |
None | A ID do locatário Azure na qual a entidade de serviço é criada. |
Forneça a seguinte opção somente se você definir cloudFiles.useNotifications = true e quiser que o Carregador Automático use uma fila existente:
| Chave | Default | Description |
|---|---|---|
cloudFiles.queueName |
None | Nome da fila do Azure. Se fornecido, a origem dos arquivos de nuvem consumirá diretamente os eventos desta fila em vez de configurar os próprios serviços da Grade de Eventos e do Armazenamento de Filas do Azure. Nesse caso, databricks.serviceCredential ou cloudFiles.connectionString requer apenas permissões de leitura na fila. |
GCP
O Carregador Automático pode configurar automaticamente os serviços de notificação para você aproveitando as credenciais de serviço do Databricks . A conta de serviço criada com a credencial de serviço do Databricks exigirá as permissões especificadas em Configurar fluxos do Carregador Automático no modo de notificação de arquivo.
| Chave | Default | Description |
|---|---|---|
cloudFiles.projectId |
None | A ID do projeto em que o bucket do GCS está. A assinatura do Google Cloud Pub/Sub também é criada neste projeto. |
databricks.serviceCredential |
None | O nome da credencial de serviço do seu Databricks. Disponível no Databricks Runtime 16.1 e superior. |
Se uma credencial de serviço do Databricks não estiver disponível, você poderá usar as Contas de Serviço do Google diretamente. Você pode configurar seu cluster para assumir uma conta de serviço seguindo a configuração do serviço Google ou fornecer as seguintes opções de autenticação diretamente:
| Chave | Default | Description |
|---|---|---|
cloudFiles.client |
None | ID do cliente da conta de serviço do Google. |
cloudFiles.clientEmail |
None | Email da conta de serviço do Google. |
cloudFiles.privateKey |
None | A chave privada gerada para a Conta de Serviço do Google. |
cloudFiles.privateKeyId |
None | A ID da chave privada gerada para a Conta de Serviço do Google. |
Forneça a opção a seguir somente se você escolher cloudFiles.useNotifications = true e desejar que o Carregador automático use uma fila já configurada:
| Chave | Default | Description |
|---|---|---|
cloudFiles.subscription |
None | Nome da assinatura do Pub/Sub do Google Cloud. Se fornecida, a origem dos arquivos de nuvem consome eventos dessa fila em vez de configurar a própria notificação do GCS e os serviços Pub/Sub do Google Cloud. |
Lago Delta
As opções a seguir se aplicam ao ler de uma tabela delta lake usando spark.readStream.
| Chave | Default | Description |
|---|---|---|
allowSourceColumnDrop |
None | Defina como um número de versão da tabela Delta ou "always" para permitir que o fluxo continue depois que as colunas forem removidas do esquema da tabela de origem. Quando definido como um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake. |
allowSourceColumnRename |
None | Defina como um número de versão da tabela Delta ou "always" para permitir que o fluxo continue depois que as colunas forem renomeada na tabela de origem. Quando definido como um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake. |
allowSourceColumnTypeChange |
None | Defina como um número de versão da tabela Delta ou "always" para permitir que o fluxo continue após os tipos de coluna serem alterados na tabela de origem. Quando definido como um número de versão, reconhece todas as alterações de esquema até essa versão. Requer schemaTrackingLocation. Confira Ampliação de tipo. |
excludeRegex |
None | Um padrão de expressão regular. Os arquivos cujos caminhos correspondem ao padrão são excluídos da leitura de streaming. Útil para filtrar arquivos que não estão em conformidade com a convenção de nomenclatura esperada. |
failOnDataLoss |
true |
Se a consulta de streaming será reprovada se os dados de origem tiverem sido excluídos devido à retenção de log (logRetentionDuration). Defina para false ignorar dados ausentes e continuar o processamento. Consulte Configurar retenção de dados para consultas de viagem no tempo. |
ignoreChanges (preterido) |
false |
Disponível no Databricks Runtime 11.3 LTS e inferior. Emite novamente arquivos de dados reescritos após operações de modificação, como UPDATE, MERGE INTO, DELETEou OVERWRITE. Linhas inalteradas podem ser emitidas junto com novas linhas, portanto, os consumidores downstream devem lidar com duplicatas. As exclusões não são propagadas para etapas posteriores. Substituído pelo skipChangeCommits Databricks Runtime 12.2 LTS e superior. |
ignoreDeletes (preterido) |
false |
Ignora transações que excluem dados em limites de partição (somente a partição completa é descartada). Não lida com exclusões, atualizações ou outras modificações não particionais. Use skipChangeCommits em seu lugar. |
readChangeFeed ou readChangeData |
false |
Se deseja habilitar a leitura do feed de dados de alteração para a consulta de streaming. Quando habilitado, o fluxo emite alterações no nível da linha (inserções, atualizações e exclusões) com colunas de metadados adicionais. Consulte o feed de dados de alterações do Delta Lake no Azure Databricks. |
schemaTrackingLocation |
None | Caminho para um diretório em que o Delta Lake rastreia as alterações de esquema para a leitura de streaming. Necessário ao transmitir de tabelas com mapeamento de coluna habilitado e usando allowSourceColumn* opções para lidar com a evolução do esquema. Deve estar dentro da checkpointLocation consulta de streaming. Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake. |
skipChangeCommits |
false |
Ignora transações que excluem ou modificam registros e processos existentes somente acrescentam. O Databricks recomenda essa opção para a maioria das cargas de trabalho que não usam feeds de dados de alteração. Disponível no Databricks Runtime 12.2 LTS e superior. Consulte Ignorar confirmações de alteração upstream com skipChangeCommits. |
startingTimestamp |
Mais recente disponível | Carimbo de data/hora do qual começar a ler. O fluxo lê todas as alterações de tabela confirmadas no ou após o carimbo de data/hora especificado. Se o carimbo de data/hora preceder todas as confirmações de tabela disponíveis, o fluxo será iniciado a partir da confirmação disponível mais antiga. Não pode ser usado junto com startingVersion. Ignorado se o ponto de verificação de streaming já existe.Valores válidos: uma cadeia de caracteres de carimbo de data/hora, como "2019-01-01T00:00:00.000Z" ou uma cadeia de caracteres de data, como "2019-01-01". |
startingVersion |
Mais recente disponível | Versão da tabela Delta da qual começar a ler. O fluxo lê todas as alterações confirmadas na versão especificada ou após a versão especificada. Especifique "latest" para começar apenas com as alterações mais recentes. Não pode ser usado junto com startingTimestamp. Ignorado se o ponto de verificação de streaming já existe. Consulte Trabalhar com o histórico de tabelas. |
withEventTimeOrder |
false |
Divide o instantâneo inicial da tabela em buckets de tempo de evento para impedir que os registros sejam marcados incorretamente como eventos tardios e descartados em consultas com estado com marcas d'água. Não é possível alterar depois que o processamento de instantâneo inicial tiver sido iniciado sem excluir o ponto de verificação. Disponível no Databricks Runtime 11.3 LTS e versões superiores. Consulte Processar instantâneo inicial sem descartar dados. |
Kafka
Use estas opções com ou spark.readStream.format("kafka")spark.read.format("kafka"):
| Chave | Default | Description |
|---|---|---|
assign |
None | As partições específicas a serem consumida. Você deve especificar exatamente uma das subscribesubscribePatternopções ou assign opções. Valores válidos: uma cadeia de caracteres JSON, como {"topicA":[0,1],"topicB":[2,4]}. |
failOnDataLoss |
true |
Se a consulta deve falhar se os dados podem ter sido perdidos, por exemplo, devido a tópicos excluídos ou truncamento de deslocamento. Defina para false ignorar dados ausentes e continuar. Valores válidos: true, false.O Databricks estima de forma conservadora se os dados podem ter sido perdidos. No entanto, isso pode causar alarmes falsos. |
fetchoffset.numretries |
3 |
O número de tentativas ao buscar deslocamentos do Kafka falha. Valores válidos: inteiros não negativos. |
fetchoffset.retryintervalms |
1000 |
O intervalo em milissegundos entre tentativas de busca de deslocamento. Valores válidos: inteiros não negativos. |
groupIdPrefix |
spark-kafka-source (streaming), spark-kafka-relation (lote) |
O prefixo personalizado a ser usado para a ID do grupo de consumidores kafka gerada automaticamente. Se kafka.group.id estiver definido explicitamente, o conector ignorará essa opção. Valores válidos: qualquer cadeia de caracteres. |
includeHeaders |
false |
Se deve incluir cabeçalhos de mensagem kafka como uma coluna na saída. Valores válidos: true, false. |
kafkaconsumer.polltimeoutms |
None | O tempo limite em milissegundos para a chamada do consumidor poll() kafka. Valores válidos: inteiros positivos. |
kafka.bootstrap.servers |
None | Uma lista separada por vírgulas de endereços host:port para agentes kafka. Define a propriedade do bootstrap.servers cliente Kafka.Se você descobrir que não há dados do Kafka, verifique se há endereços incorretos nessa lista de endereços do agente. Se a lista de endereços do agente estiver incorreta, talvez não haja erros. Os clientes kafka pressupõem que os agentes estarão disponíveis eventualmente e tentarão novamente para sempre quando receberem erros de rede. |
maxRecordsPerPartition |
None | O número máximo de registros para cada partição do Spark. Quando definido, o conector divide as partições do Kafka para que cada partição do Spark leia, no máximo, tantos registros. Valores válidos: inteiros positivos. Você também pode usar essa opção com minPartitions. Quando ambas as opções são definidas, o Spark usa qualquer opção que resulte em mais partições. |
minPartitions |
None | O número mínimo de partições do Spark a serem lidas do Kafka. Quando definido, o conector divide grandes partições kafka para aumentar o paralelismo. Quando não definido, o Spark cria uma partição para cada tópico-partição do Kafka. Útil para lidar com cargas de pico ou distorção de dados. Valores válidos: inteiros positivos. Essa opção reinicializa os consumidores kafka para cada gatilho, o que pode afetar o desempenho com SSL. |
startingOffsets |
latest (streaming), earliest (lote) |
O deslocamento do qual a consulta começa a leitura. Valores válidos: earliest, latestou uma cadeia de caracteres JSON de deslocamentos para cada partição, como {"topicA":{"0":23,"1":-2}}. Na cadeia de caracteres JSON, -1 é o deslocamento mais recente.
-2 é o deslocamento mais antigo.Para consultas de streaming, essa opção só se aplica quando uma nova consulta é iniciada. As consultas retomadas sempre usam o ponto de verificação. Durante uma consulta, novas partições começam a ser lidos no deslocamento mais cedo. Para consultas em lote, latest não é permitido. |
startingOffsetsByTimestamp |
None | Uma lista de deslocamentos iniciais para cada partição, especificada como carimbos de data/hora em milissegundos. Quando nenhum deslocamento existe para um carimbo de data/hora, o comportamento da consulta é determinado por startingOffsetsByTimestampStrategy. Valores válidos: uma cadeia de caracteres JSON de carimbos de data/hora para cada partição, como {"topicA":{"0":1000,"1":2000}}.Para consultas de streaming, essa opção só se aplica quando uma nova consulta é iniciada. As consultas retomadas sempre usam o ponto de verificação. Durante uma consulta, novas partições começam a ser lidos no deslocamento mais cedo. |
startingOffsetsByTimestampStrategy |
error |
A estratégia a ser usada quando nenhum deslocamento é encontrado para um carimbo de data/hora especificado em startingOffsetsByTimestamp ou startingTimestamp. Valores válidos: error (gera uma exceção) latest (usa o deslocamento disponível mais recente). |
startingTimestamp |
None | O carimbo de data/hora inicial global em milissegundos que se aplica a todas as partições. Quando nenhum deslocamento existe para o carimbo de data/hora, o comportamento é controlado por startingOffsetsByTimestampStrategy. Valores válidos: inteiros não negativos. |
subscribe |
None | Os tópicos a serem assinados. Você deve especificar exatamente uma das subscribesubscribePatternopções ou assign opções. Valores válidos: uma lista separada por vírgulas de nomes de tópico. |
subscribePattern |
None | O padrão usado para assinar tópicos. Você deve especificar exatamente uma das subscribesubscribePatternopções ou assign opções. Por exemplo, topic.*. Valores válidos: qualquer cadeia de caracteres regex Java. |
As opções a seguir se aplicam somente às leituras de streaming com spark.readStream.format("kafka"):
| Chave | Default | Description |
|---|---|---|
bytesEstimateWindowLength |
300s |
A janela de tempo usada para estimar os bytes restantes para a estimatedTotalBytesBehindLatest métrica. Valores válidos: cadeias de caracteres de duração como 10m ou 600s. Consulte Recuperar métricas do Kafka. |
maxOffsetsPerTrigger |
None | O número máximo de deslocamentos a serem processados por intervalo de gatilho. Os deslocamentos são distribuídos proporcionalmente entre partições de tópico. Valores válidos: inteiros positivos. |
maxTriggerDelay |
15m |
O tempo máximo a ser esperado para minOffsetsPerTrigger se acumular antes de disparar. Valores válidos: cadeias de caracteres de duração como 10m ou 600s. |
minOffsetsPerTrigger |
None | O número mínimo de deslocamentos a serem acumulados antes de disparar um microlote. Quando maxTriggerDelay atingido, o microlote é executado independentemente. Valores válidos: inteiros positivos. |
Para obter opções de deslocamento que se aplicam somente às leituras em lote com spark.read.format("kafka"), consulte as opções do Kafka do DataFrameReader.
Para opções de cliente kafka (kafka.*) e autenticação, consulte Opções.
Opções de DataFrameWriter
Use essas opções com DataFrameWriter.option() e DataFrameWriterV2.option() para controlar como Azure Databricks grava dados.
Example
O exemplo a seguir define mergeSchema para escrever True uma tabela delta lake:
Python
df.write.format("delta").option("mergeSchema", True).saveAsTable("my_table")
Scala
df.write.format("delta").option("mergeSchema", "true").saveAsTable("my_table")
Avro
| Chave | Default | Description |
|---|---|---|
avroSchema |
None | O esquema Avro completo como uma cadeia de caracteres JSON. Use essa opção para converter tipos SQL do Spark em tipos específicos do Avro. Aplica-se ao arquivo Avro. |
avroSchemaUrl |
None | Uma URL que aponta para um arquivo de esquema do Avro. Use em vez de avroSchema quando o esquema é armazenado externamente. Mutuamente exclusivo com avroSchema. Aplica-se ao arquivo Avro. |
compression |
snappy |
Codec de compactação a ser usado ao gravar. Valores válidos: uncompressed, , deflate, snappy, bzip2, xz, . zstandard Aplica-se ao arquivo Avro. |
recordName |
topLevelRecord |
O nome do registro de nível superior no esquema Avro de saída. Aplica-se ao arquivo Avro. |
positionalFieldMatching |
false |
Se as colunas devem ser correspondentes entre o esquema Spark e o esquema do Avro por posição de campo em vez de por nome. Aplica-se ao arquivo Avro. |
recordNamespace |
Cadeia vazia | O namespace para o registro de nível superior no esquema Avro de saída. Aplica-se ao arquivo Avro. |
Delta Lake e Apache Iceberg
| Chave | Default | Description |
|---|---|---|
clusterByAuto |
false |
Se deseja habilitar o clustering líquido automático, em que Azure Databricks seleciona colunas de clustering com base em padrões de consulta. Somente válido com mode("overwrite"). Não pode ser usado com append o modo. Disponível no Databricks Runtime 16.4 e superior. Aplica-se ao uso de clustering líquido para tabelas. |
mergeSchema |
None | Se deseja habilitar a evolução do esquema para a operação de gravação. Novas colunas no DataFrame de origem são adicionadas ao esquema da tabela de destino. Aplica-se a acréscimos em lote e streaming. Aplica-se ao esquema de tabela De atualização. |
overwriteSchema |
None | Se deseja substituir o esquema de tabela e o particionamento ao substituir.
mode("overwrite") Requer sem replaceWhere. Não pode ser usado com partitionOverwriteMode. Aplica-se ao esquema de tabela De atualização. |
partitionOverwriteMode |
None | O modo de substituição de partição. Defina isso para dynamic substituir apenas partições que contêm novos dados, deixando todas as outras partições inalteradas. Modo herdado, sem suporte na computação sem servidor ou no SQL do Databricks. Valores válidos: static, dynamic. Aplica-se à substituição seletiva de dados com o Delta Lake. |
replaceOn |
None | Uma expressão booliana que corresponde às linhas na tabela de destino a serem substituídas por linhas da consulta de origem. Pode referenciar colunas da tabela de destino e da consulta de origem. As linhas no destino que correspondem a uma linha de origem são excluídas e substituídas. Se a origem estiver vazia, nenhuma exclusão ocorrerá. Use targetAlias para desambiguar referências de coluna. Disponível no Databricks Runtime 17.1 e superior. Aplica-se à substituição seletiva de dados com o Delta Lake. |
replaceUsing |
None | Uma lista separada por vírgulas de nomes de coluna usados para corresponder linhas entre a tabela de destino e a consulta de origem. O destino e a origem devem conter todas as colunas listadas. As linhas no destino que correspondem a uma linha de origem em comparação de igualdade são excluídas e substituídas.
NULL os valores são tratados como não iguais e não correspondem. Disponível no Databricks Runtime 16.3 e superior. Aplica-se à substituição seletiva de dados com o Delta Lake. |
replaceWhere |
None | Uma expressão de predicado. Substitui atomicamente apenas os registros que correspondem ao predicado. Aplica-se à substituição seletiva de dados com o Delta Lake. |
targetAlias |
None | Um alias de cadeia de caracteres para a tabela de destino. Use com replaceOn ou replaceWhere para desambiguar referências de coluna quando a condição fizer referência a colunas da tabela de destino e da consulta de origem. Aplica-se à substituição seletiva de dados com o Delta Lake. |
txnAppId |
None | Uma cadeia de caracteres exclusiva que identifica o aplicativo para gravações idempotentes em foreachBatch operações. Use em conjunto para txnVersion garantir gravações exatamente uma vez em várias tabelas delta lake. Aplica-se ao Uso foreachBatch para gravações de tabela idempotentes. |
txnVersion |
None | Um número de aumento monotonicamente usado como a versão da transação para gravações idempotentes em foreachBatch operações. Use em conjunto para txnAppId garantir gravações exatamente uma vez em várias tabelas delta lake. Aplica-se ao Uso foreachBatch para gravações de tabela idempotentes. |
optimizeWrite |
None | Se deseja habilitar a Gravação de Otimização Automática para esta operação de gravação. Substitui a spark.databricks.delta.optimizeWrite.enabled configuração. Aplica-se a O que é o Delta Lake em Azure Databricks?. |
userMetadata |
None | Uma cadeia de caracteres definida pelo usuário acrescentada aos metadados de confirmação para a operação de gravação. Visível na saída de DESCRIBE HISTORY. Aplica-se a tabelas enriquecedoras com metadados personalizados. |
CSV
| Chave | Default | Description |
|---|---|---|
charToEscapeQuoteEscaping |
\0 (não habilitado) |
O caractere usado para escapar do caractere de escape quando ele difere do caractere de aspas. Aplica-se ao csv (DataFrameWriter). |
compression |
none |
Codec de compactação a ser usado ao gravar. Valores válidos: none, , bzip2, gzip, lz4, snappy, , deflate, zstd. Aplica-se ao csv (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Formatar cadeia de caracteres para valores de coluna de data. Aplica-se ao csv (DataFrameWriter). |
emptyValue |
Cadeia vazia | A cadeia de caracteres gravada para valores vazios (não nulos). Aplica-se ao csv (DataFrameWriter). |
encoding |
UTF-8 |
A codificação de caracteres para os arquivos de saída. Aplica-se ao csv (DataFrameWriter). |
escape |
\ |
O caractere usado para escapar dos valores entre aspas. Aplica-se ao csv (DataFrameWriter). |
escapeQuotes |
true |
Se os caracteres de aspas devem ser escapados dentro dos valores de campo entre aspas. Aplica-se ao csv (DataFrameWriter). |
header |
false |
Se deve gravar nomes de coluna como a primeira linha da saída. Aplica-se ao csv (DataFrameWriter). |
ignoreLeadingWhiteSpace |
false |
Se deseja cortar o espaço em branco à esquerda de valores ao gravar. Aplica-se ao csv (DataFrameWriter). |
ignoreTrailingWhiteSpace |
false |
Se deseja cortar o espaço em branco à direita dos valores ao gravar. Aplica-se ao csv (DataFrameWriter). |
lineSep |
\n |
A cadeia de caracteres do separador de linha usada entre registros. Aplica-se ao csv (DataFrameWriter). |
locale |
en-US |
Um identificador java.util.Locale. Influencia a formatação de valores de data e carimbo de data/hora ao gravar. |
nullValue |
Cadeia vazia | Cadeia de caracteres gravada para valores nulos. Aplica-se ao csv (DataFrameWriter). |
quote |
" |
O caractere usado para citar valores de campo que contêm o separador. Aplica-se ao csv (DataFrameWriter). |
quoteAll |
false |
Se deve colocar todos os valores de campo entre aspas, independentemente do conteúdo. Aplica-se ao csv (DataFrameWriter). |
sep |
, |
O caractere delimitador de campo. Aplica-se ao csv (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
A cadeia de caracteres de formato para valores de coluna de carimbo de data/hora. Aplica-se ao csv (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Formatar cadeia de caracteres para carimbo de data/hora sem valores de coluna de fuso horário (TimestampNTZType). |
Excel
| Chave | Default | Description |
|---|---|---|
dataAddress |
None | O nome da planilha ou a célula inicial da gravação. Se omitido, grava em uma planilha nomeada Sheet1 começando na célula A1. Aceita um nome de planilha ("SheetName") ou uma referência de célula única ("SheetName!A1"). Não há suporte para intervalos de células para gravações. |
dateFormatInWrite |
yyyy-mm-dd |
Excel cadeia de caracteres de formato de célula aplicada a colunas Date. Usa Excel sintaxe de formato. |
headerRows |
0 |
Se deve escrever nomes de coluna como a primeira linha. Valores válidos: 0, 1. |
timestampNTZFormat |
yyyy-mm-dd hh:mm:ss |
Excel cadeia de caracteres de formato de célula aplicada a colunas TimestampNTZ e Timestamp. Usa Excel sintaxe de formato. |
version |
xlsx |
A versão de formato de arquivo Excel a ser gravada. Valores válidos: xlsx, xls. |
JSON
| Chave | Default | Description |
|---|---|---|
compression |
none |
Codec de compactação a ser usado ao gravar. Valores válidos: none, , bzip2, gzip, lz4, snappy, , deflate, zstd. Aplica-se a json (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Formatar cadeia de caracteres para valores de coluna de data. Aplica-se a json (DataFrameWriter). |
encoding |
UTF-8 |
A codificação de caracteres para os arquivos de saída. Aplica-se a json (DataFrameWriter). |
ignoreNullFields |
valor de spark.sql.jsonGenerator.ignoreNullFields |
Se deve omitir campos com valores nulos da saída JSON. Aplica-se a json (DataFrameWriter). |
lineSep |
\n |
A cadeia de caracteres do separador de linha usada entre registros. Aplica-se a json (DataFrameWriter). |
locale |
en-US |
Um identificador java.util.Locale. Influencia a formatação de valores de data e carimbo de data/hora ao gravar. |
pretty |
false |
Se deseja habilitar uma saída JSON bonita (recuada, multilinha). |
sortKeys |
false |
Se as chaves de objetos JSON devem ser classificadas em ordem alfabética na saída. Útil para produzir a saída determinística. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
A cadeia de caracteres de formato para valores de coluna de carimbo de data/hora. Aplica-se a json (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Formatar cadeia de caracteres para carimbo de data/hora sem valores de coluna de fuso horário (TimestampNTZType). |
writeNonAsciiCharacterAsCodePoint |
false |
Se deseja codificar caracteres não ASCII como \uXXXX sequências de escape Unicode em vez de caracteres UTF-8 literais na saída. |
ORC
| Chave | Default | Description |
|---|---|---|
compression |
zstd |
Codec de compactação a ser usado ao gravar. Valores válidos: none, , uncompressed, snappy, zlib, lzo, , zstd, lz4, . brotli Aplica-se a orc (DataFrameWriter). |
Parquet
| Chave | Default | Description |
|---|---|---|
compression |
snappy |
Codec de compactação a ser usado ao gravar. Valores válidos: none, , uncompressed, snappy, gzip, lzo, , brotli, lz4, , lz4_raw. zstd Aplica-se ao parquet (DataFrameWriter). |
spark.sql.parquet.outputTimestampType |
INT96 |
O tipo físico usado para codificar colunas de carimbo de data/hora. Valores válidos: INT96, , TIMESTAMP_MICROSTIMESTAMP_MILLIS. Use INT96 para compatibilidade com leitores parquet herdados que não dão suporte aos tipos de carimbo de data/hora padrão. |
Texto
| Chave | Default | Description |
|---|---|---|
compression |
none |
Codec de compactação a ser usado ao gravar. Valores válidos: none, , bzip2, gzip, lz4, snappy, , deflate, zstd. Aplica-se ao texto (DataFrameWriter). |
encoding |
UTF-8 |
A codificação de caracteres para os arquivos de saída. |
lineSep |
\n |
A cadeia de caracteres do separador de linha usada entre registros. Aplica-se ao texto (DataFrameWriter). |
XML
| Chave | Default | Description |
|---|---|---|
arrayElementName |
item |
O nome do elemento para elementos de matriz que não têm nenhum nome explícito. Aplica-se a xml (DataFrameWriter). |
attributePrefix |
_ |
O prefixo anexado a nomes de campo que correspondem a atributos XML. Aplica-se a xml (DataFrameWriter). |
compression |
none |
Codec de compactação a ser usado ao gravar. Valores válidos: none, , bzip2, gzip, lz4, snappy, , deflate, zstd. Aplica-se a xml (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Formatar cadeia de caracteres para valores de coluna de data. Aplica-se a xml (DataFrameWriter). |
declaration |
version="1.0" encoding="UTF-8" standalone="yes" |
A cadeia de caracteres de declaração XML gravada na parte superior de cada arquivo de saída. Defina como uma cadeia de caracteres vazia para suprimir a declaração. Aplica-se a xml (DataFrameWriter). |
encoding |
UTF-8 |
A codificação de caracteres para os arquivos de saída. Aplica-se a xml (DataFrameWriter). |
indent |
4 espaços | A cadeia de caracteres usada para recuar elementos filho na saída. Defina como uma cadeia de caracteres vazia para desativar o recuo e gravar cada linha em uma única linha. |
locale |
en-US |
Um identificador java.util.Locale. Influencia a formatação de valores de data e carimbo de data/hora ao gravar. |
nullValue |
null |
A cadeia de caracteres gravada para valores nulos. Quando definido como null, atributos e elementos filho para campos nulos são omitidos. Aplica-se a xml (DataFrameWriter). |
rootTag |
ROWS |
A marca de elemento raiz que encapsula todos os elementos de linha na saída. Aplica-se a xml (DataFrameWriter). |
rowTag |
ROW |
A marca de elemento que representa uma linha na saída. Aplica-se a xml (DataFrameWriter). |
singleVariantColumn |
None | O nome da única coluna Variant a ser gravada em arquivos XML. Aplica-se a xml (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
A cadeia de caracteres de formato para valores de coluna de carimbo de data/hora. Aplica-se a xml (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Formatar cadeia de caracteres para carimbo de data/hora sem valores de coluna de fuso horário. Aplica-se a xml (DataFrameWriter). |
validateName |
true |
Se deve gerar uma exceção se um nome de coluna não for um identificador de elemento XML válido. Aplica-se a xml (DataFrameWriter). |
valueTag |
_VALUE |
O nome do campo usado para dados de caractere em elementos XML que também têm atributos ou elementos filho. Aplica-se a xml (DataFrameWriter). |
Opções do DataStreamWriter
Use essas opções para DataStreamWriter.option() configurar gravações de streaming.
Example
O exemplo a seguir define o local de ponto de verificação para um fluxo:
Python
(df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table"))
Scala
df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table")
Comum
| Chave | Default | Description |
|---|---|---|
checkpointLocation |
Nenhum (obrigatório) | Caminho para o diretório de ponto de verificação para a consulta de streaming. Necessário para tolerância a falhas e garantias de processamento exatamente uma vez. Cada consulta de streaming deve usar um local de ponto de verificação exclusivo. O Databricks recomenda armazenar pontos de verificação em um volume do Catálogo do Unity ou no caminho de armazenamento em nuvem. Consulte Pontos de verificação de Fluxo Estruturado. |
path |
None | Caminho de saída para coletores de streaming baseados em arquivo, como Parquet. Aplica-se somente a formatos baseados em arquivo. |
Coletor de console
| Chave | Default | Description |
|---|---|---|
numRows |
20 |
O número de linhas a serem exibidas para cada microlote ao gravar no coletor do console. |
truncate |
true |
Se você deve truncar cadeias de caracteres longas ao exibir linhas. Definido para false mostrar valores de cadeia de caracteres completos. |
Lago Delta
As opções a seguir se aplicam ao escrever um fluxo em uma tabela delta lake usando format("delta"). Opções somente substituição, como overwriteSchema, replaceWheree partitionOverwriteMode não têm suporte para gravações de streaming.
| Chave | Default | Description |
|---|---|---|
mergeSchema |
false |
Se o esquema da tabela Delta Lake deve ser evoluído quando o DataFrame de streaming contiver novas colunas. Aplica-se somente ao modo de saída de acréscimo. Aplica-se ao esquema de tabela De atualização. |
userMetadata |
None | Uma cadeia de caracteres definida pelo usuário acrescentada aos metadados de confirmação para a operação de gravação. Visível na saída de DESCRIBE HISTORY. Aplica-se a tabelas enriquecedoras com metadados personalizados. |
Coletor de arquivos
A opção a seguir se aplica ao gravar um fluxo em formatos baseados em arquivo (Parquet, JSON, CSV, ORC, texto). Para obter opções específicas de formato, consulte as opções do DataFrameWriter.
| Chave | Default | Description |
|---|---|---|
retention |
None | Por quanto tempo manter arquivos de metadados do coletor usados para tolerância a falhas e compactação. Aceita uma cadeia de caracteres de tempo como 7 days ou 24 hours. Quando não definido, os arquivos de metadados são mantidos indefinidamente. |
Coletor Kafka
Para obter uma lista completa de opções para gravar fluxos no Kafka, consulte Opções.
| Chave | Default | Description |
|---|---|---|
kafka.bootstrap.servers |
None | Required. Uma lista separada por vírgulas de endereços do agente host:port kafka. |
topic |
None | O tópico kafka de destino para todas as linhas. Necessário se o DataFrame não incluir uma topic coluna. |
kafka.* |
None | Qualquer configuração de produtor kafka prefixada com kafka.. Por exemplo, kafka.compression.type. |
Coletor de memória
| Chave | Default | Description |
|---|---|---|
queryName |
Nenhum (obrigatório) | O nome da tabela na memória na qual a consulta grava. Necessário para o coletor de memória. Também configurável por meio de .queryName(). |
mode |
exactlyonce |
Garantia de entrega para o coletor de memória.
exactlyonce usa o modo de microlote com semântica exatamente uma vez.
atleastonce usa o modo contínuo com semântica pelo menos uma vez. Valores válidos: exactlyonce, atleastonce. |
Opções de função do Spark
Algumas funções internas do Spark SQL aceitam um options mapa que controla o comportamento de análise ou serialização. Passe opções como um Python dict ou um Scala Map[String, String].
Example
O exemplo a seguir analisa uma coluna JSON ao descartar registros malformados:
Python
from pyspark.sql.functions import from_json
from pyspark.sql.types import StructType, StructField, StringType
schema = StructType([StructField("name", StringType())])
df = df.withColumn("parsed", from_json("json_col", schema, {"mode": "DROPMALFORMED"}))
Scala
import org.apache.spark.sql.functions.from_json
import org.apache.spark.sql.types._
val schema = StructType(Seq(StructField("name", StringType)))
val df = df.withColumn("parsed", from_json(col("json_col"), schema, Map("mode" -> "DROPMALFORMED")))
Avro
As funções do Avro aceitam as mesmas opções que as opções de DataFrame correspondentes:
-
from_avroeschema_of_avrouse as opções do DataFrameReader Avro. -
to_avrousa as opções do DataFrameWriter Avro.
Example
O exemplo a seguir decodifica uma coluna do Avro com a evolução do esquema habilitada:
Python
from pyspark.sql.functions import from_avro
df = df.withColumn("decoded", from_avro("avro_col", json_schema, {"avroSchemaEvolutionMode": "restart"}))
Scala
import org.apache.spark.sql.avro.functions.from_avro
val df = df.withColumn("decoded", from_avro(col("avro_col"), jsonSchema, Map("avroSchemaEvolutionMode" -> "restart")))
Além disso, as variantes do Registro de Esquema e from_avroto_avro as seguintes opções são aceitas:
| Chave | Default | Description |
|---|---|---|
schemaId |
None | ID de esquema do Registro de Esquema do Confluent a ser usado ao decodificar dados do Avro que foram codificados com um esquema incompatível com jsonFormatSchema. Aplica-se apenas a from_avro . |
confluent.schema.registry.* |
None | Propriedades de configuração do cliente do Registro de Esquema do Confluent. Passe qualquer propriedade de cliente Confluent SR usando esse prefixo, por exemplo confluent.schema.registry.basic.auth.user.info , para credenciais básicas de autenticação. Necessário para as variantes do Registro de Esquema de from_avro e to_avro. |
CSV
As funções CSV aceitam as mesmas opções que as opções de DataFrame correspondentes:
-
from_csveschema_of_csvuse as opções de CSV do DataFrameReader. -
to_csvusa opções de CSV do DataFrameWriter.
Example
O exemplo a seguir lê CSV com um separador e NULL valor personalizados:
Python
from pyspark.sql.functions import from_csv
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
schema = StructType([StructField("id", IntegerType()), StructField("name", StringType())])
df = df.withColumn("parsed", from_csv("csv_col", schema, {"sep": "|", "nullValue": "N/A"}))
Scala
import org.apache.spark.sql.functions.from_csv
import org.apache.spark.sql.types._
val schema = StructType(Seq(StructField("id", IntegerType), StructField("name", StringType)))
val df = df.withColumn("parsed", from_csv(col("csv_col"), schema, Map("sep" -> "|", "nullValue" -> "N/A")))
JSON
As funções JSON aceitam as mesmas opções que as opções de DataFrame correspondentes:
-
from_jsoneschema_of_jsonuse as opções JSON do DataFrameReader. -
to_jsonusa opções JSON do DataFrameWriter.
Example
O exemplo a seguir grava JSON com NULL campos ignorados e formatação bastante habilitada:
Python
from pyspark.sql.functions import to_json
df = df.withColumn("json_str", to_json("struct_col", {"pretty": "true", "ignoreNullFields": "true"}))
Scala
import org.apache.spark.sql.functions.to_json
val df = df.withColumn("json_str", to_json(col("struct_col"), Map("pretty" -> "true", "ignoreNullFields" -> "true")))
Protobuf
from_protobuf e to_protobuf não use um DataSource baseado em arquivo. Os dados do Protobuf são sempre lidos e gravados como colunas binárias usando essas funções. As opções são passadas como um Map[String, String] e diferenciam maiúsculas de minúsculas.
Example
O exemplo a seguir decodifica uma coluna Protobuf usando o modo PERMISSIVE:
Python
from pyspark.sql.functions import from_protobuf
df = df.withColumn("decoded", from_protobuf("proto_col", "MyMessage", "/path/to/descriptor.desc",
{"mode": "PERMISSIVE", "enums.as.ints": "true"}))
Scala
import org.apache.spark.sql.protobuf.functions.from_protobuf
val df = df.withColumn("decoded", from_protobuf(col("proto_col"), "MyMessage", "/path/to/descriptor.desc",
Map("mode" -> "PERMISSIVE", "enums.as.ints" -> "true")))
As funções protobuf usam as seguintes opções:
| Chave | Default | Description |
|---|---|---|
mode |
FAILFAST |
Como lidar com registros corrompidos.
FAILFAST gera uma exceção.
PERMISSIVE define campos malformados como nulos. Valores válidos: FAILFAST, PERMISSIVE. Aplica-se a from_protobuf. |
recursive.fields.max.depth |
-1 (desabilitado) |
Profundidade máxima de recursão para campos protobuf recursivos. Defina para desativar o suporte ao 0 campo recursivo. Valores válidos: 0 para 10. Aplica-se a from_protobuf. |
convert.any.fields.to.json |
false |
Se os campos protobuf Any devem ser convertidos em uma cadeia de caracteres JSON em vez de um STRUCT. Aplica-se a from_protobuf. |
emit.default.values |
false |
Se deseja emitir campos com valores zero ou padrão (semântica proto3). Quando falseos campos com valores padrão são omitidos da saída. Aplica-se a from_protobuf. |
enums.as.ints |
false |
Se deseja renderizar campos enumerados como valores inteiros em vez de cadeias de caracteres. Aplica-se a from_protobuf. |
upcast.unsigned.ints |
false |
Seja para upcast uint32 para Long e uint64 para Decimal(20,0) evitar o estouro inteiro. Aplica-se a from_protobuf. |
unwrap.primitive.wrapper.types |
false |
Se deseja desembrulhar google.protobuf tipos de wrapper (por exemplo, Int32Value e StringValue) para seus tipos spark primitivos correspondentes. Aplica-se a from_protobuf. |
retain.empty.message.types |
false |
Se deseja manter tipos de mensagem Protobuf vazios no esquema de saída inserindo uma coluna fictícia. Aplica-se a from_protobuf. |
schema.registry.subject |
None | Nome da entidade do Registro de Esquema. Necessário ao usar as variantes do Registro de Esquema de from_protobuf e to_protobuf. |
schema.registry.address |
None | Endereço do Registro de Esquema (host e porta). Necessário ao usar as variantes do Registro de Esquema de from_protobuf e to_protobuf. |
schema.registry.protobuf.name |
None | Especifica qual mensagem protobuf usar quando o assunto do registro de esquema contém várias mensagens. Optional. |
XML
As funções XML aceitam as mesmas opções que as opções de DataFrame correspondentes:
-
from_xmleschema_of_xmluse as opções XML do DataFrameReader. -
to_xmlusa opções XML do DataFrameWriter.
Example
O exemplo a seguir grava XML com marcas de linha e raiz personalizadas:
Python
from pyspark.sql.functions import to_xml
df = df.withColumn("xml_str", to_xml("struct_col", {"rootTag": "records", "rowTag": "record"}))
Scala
import org.apache.spark.sql.functions.to_xml
val df = df.withColumn("xml_str", to_xml(col("struct_col"), Map("rootTag" -> "records", "rowTag" -> "record")))