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