Referência de opçõesSpark API
Esta página lista as opções de entrada e saída disponíveis para as APIs do Spark que leem e gravam dados.
Opções do DataFrameReader
Use estas opções com DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO e Auto Loader para controlar como o Databricks lê os arquivos de dados.
Exemplo
O exemplo a seguir define multiLine como True para leitura de arquivos JSON:
- Python
- Scala
- SQL
df = spark.read.format("json").option("multiLine", True).load("/path/to/data")
val df = spark.read.format("json").option("multiLine", "true").load("/path/to/data")
SELECT * FROM read_files("/path/to/data", format => "json", multiLine => true)
Comum
As seguintes opções se aplicam a todos os formatos de arquivo.
Chave | Padrão | Descrição |
|---|---|---|
|
| Se deve ignorar ou não os arquivos corrompidos. Se isso for verdade, o trabalho Spark continuará a ser executado ao encontrar arquivos corrompidos e o conteúdo que já foi lido ainda será retornado. Para |
|
| Se deve ignorar ou não os ficheiros em falta. Se isso for verdade, o trabalho Spark continuará a ser executado mesmo ao encontrar arquivos ausentes e o conteúdo ainda será retornado. Disponível no Databricks Runtime 11.3 LTS e versões superiores. |
| Nenhuma | Um carimbo de data/hora opcional como filtro para ingerir apenas arquivos que tenham um carimbo de data/hora de modificação posterior ao carimbo de data/hora fornecido. |
| Nenhuma | Um carimbo de data/hora opcional como filtro para ingerir apenas arquivos que tenham um carimbo de data/hora de modificação anterior ao carimbo de data/hora fornecido. |
| Nenhuma | Um possível padrão glob para auxiliar na seleção de arquivos. Equivalente a |
|
| Quando |
Avro
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | Esquema opcional fornecido pelo usuário no formato Avro. Ao ler um arquivo Avro, essa opção pode ser definida para um esquema evoluído que seja compatível, mas diferente do esquema Avro original. O esquema de desserialização é consistente com o esquema evoluído. Por exemplo, se você definir um esquema evoluído contendo uma coluna adicional com um valor default , o resultado da leitura também conterá a nova coluna. |
|
| Como lidar com a evolução do esquema ao usar um registro de esquemas. Valores válidos: |
|
| Controla o rebase dos valores DATE e TIMESTAMP entre calendários gregoriano juliano e proléptico. Valores válidos: |
|
| Se deve ou não utilizar nomes de campo estáveis para os tipos Avro Union. Quando ativado, os nomes dos campos do tipo união são derivados de seus nomes de tipo em minúsculas (por exemplo, |
|
| Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. |
|
| Modo de análise sintática para lidar com registros corrompidos. Valores válidos: |
|
| Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando |
| Nenhuma | Profundidade máxima de recursão para campos Avro recursivos. Defina como |
| Nenhuma | Determinar se todos os dados que não puderam ser analisados devido a: incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader.
Para obter mais detalhes, consulte O que é a coluna de dados recuperados? |
|
| O prefixo a ser usado para nomes de campos de tipo de união estável quando |
CSV
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O caminho para armazenar arquivos para registrar as informações sobre registros CSV ruins. |
|
| O caractere usado para escapar do caractere usado para escapar das citações. Por exemplo, para o seguinte registro:
|
|
| Compatível com Auto Loader. Não suportado para |
|
| Define o caractere que representa um comentário de linha quando encontrado no início de uma linha de texto. Use |
|
| O formato para analisar cadeias de caracteres de data. |
| Cadeias vazias | Representação de string de um valor vazio. |
|
| Indica se deve recorrer ao comportamento de análise de data e hora legado quando um valor não puder ser analisado com o formato especificado. Quando |
|
| O nome da codificação dos arquivos CSV. Consulte |
|
| Se deve aplicar à força o esquema especificado ou inferido aos arquivos CSV. Se a opção estiver habilitada, os cabeçalhos de arquivos CSV serão ignorados. Essa opção é ignorada por padrão ao usar o Auto Loader para resgatar dados e permitir a evolução do esquema. |
|
| O caractere de escape a ser usado ao analisar os dados. |
|
| A extensão de nome de arquivo esperada. Arquivos sem essa extensão são filtrados durante a leitura. |
|
| Indica se a operação deve falhar quando o registro CSV contiver colunas não presentes no esquema. Quando |
|
| Indica se a análise deve falhar quando o valor de um campo não puder ser interpretado como o tipo de esquema declarado sem ampliação (widering). Quando |
|
| Se os arquivos CSV contêm um cabeçalho. O Auto Loader pressupõe que os arquivos tenham cabeçalhos ao inferir o esquema. |
|
| Se deve ignorar os principais espaços em branco para cada valor analisado. |
|
| Se devem ser ignorados os espaços em branco à direita para cada valor analisado. |
|
| Se deve inferir os tipos de dados dos registros CSV analisados ou assumir que todas as colunas são de |
|
| O tamanho do buffer em bytes para o analisador CSV. Útil para otimizar o uso de memória ao analisar arquivos CSV grandes. Valores válidos: números inteiros positivos. |
| Nenhum, que abrange | Uma string entre dois registros CSV consecutivos. |
|
| Um identificador |
|
| Número máximo de caracteres esperados em um valor a ser analisado. Pode ser usado para evitar erros de memória. O valor padrão é |
|
| O limite máximo de colunas que um registro pode ter. Valores válidos: números inteiros positivos. |
|
| Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. Habilitado por padrão para o Auto Loader ao inferir o esquema. |
|
| Modo de análise sintática para lidar com registros malformados. Valores válidos: |
|
| Se os registros CSV abrangem várias linhas. |
|
| A representação de string de um valor não numérico ao analisar colunas |
|
| A representação de string do infinito negativo ao analisar colunas |
| Cadeias vazias | Representação de string de um valor nulo. |
|
| Durante a leitura de arquivos, verifique se as colunas declaradas no cabeçalho devem ser alinhadas com o esquema com diferenciação de maiúsculas e minúsculas. Isso é |
|
| A representação de string do infinito positivo ao analisar colunas |
|
| Tenta inferir strings como datas em vez de carimbo de data/hora quando possível. Você também deve usar a inferência de esquema, habilitando |
|
| O caractere usado para escapar de valores onde o delimitador de campo faz parte do valor. |
|
| Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando |
| Nenhuma | Determinar se todos os dados que não puderam ser analisados devido a: incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados recuperados?
|
|
| A string separadora entre colunas. |
| Nenhuma | Quando definido para um nome de coluna, lê o registro CSV inteiro em uma única coluna |
|
| Número de linhas do início do arquivo CSV que devem ser ignoradas (incluindo linhas comentadas e vazias). Se |
|
| O formato para analisar os valores da coluna |
|
| O formato para analisar cadeias de caracteres de carimbo de data/hora. |
|
| O formato para analisar timestamps sem fuso horário ( |
| Nenhuma | O |
|
| A estratégia para lidar com cotações sem escape. Opções permitidas:
|
Excel
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O intervalo de células a ser lido na sintaxe do Excel. Se omitido, lê todas as células válidas da primeira planilha. Use |
|
| Número de linhas iniciais a serem usadas como cabeçalhos de nome de coluna. Quando |
|
| As operações a serem realizadas na planilha Excel . Valores válidos: |
|
| Cadeias de formatação personalizadas para valores de carimbo de data/hora sem fuso horário armazenados como strings no Excel. Os formatos de data personalizados seguem os formatos definidos em Datetime patterns. |
|
| Cadeias de formato personalizadas para valores de string lidos como |
JSON
Chave | Padrão | Descrição |
|---|---|---|
|
| Se deve permitir que barras invertidas () sejam usadas para escapar qualquer caractere que a suceda.Se não estiver habilitado, somente caracteres que são explicitamente listados pela especificação JSON podem ser escapados. |
|
| Se deve permitir ou não o uso de comentários no estilo Java, C e C++ (variedades |
|
| Se o conjunto de tokens não é um número ( |
|
| Se é permitido permitir que números inteiros comecem com zeros adicionais (ignoráveis) (por exemplo, |
|
| Se deve ser permitido o uso de aspas simples (apóstrofo, caractere |
|
| Permitir ou não que as strings JSON contenham caracteres de controle sem escape (caracteres ASCII com valor menor que a 32, incluindo caracteres de tabulação e de avanço de linha). |
|
| Se deve ser permitido o uso de nomes de campos sem aspas, o que é permitido pelo JavaScript, mas não pela especificação JSON. |
| Nenhuma | A codificação usada para os valores Variant no JSON de origem. Defina como |
| Nenhuma | O caminho para armazenar arquivos que registram informações sobre registros JSON inválidos. O uso da opção
|
|
| A coluna para armazenar registros que estão malformados e não podem ser analisados. Se o |
|
| O formato para analisar cadeias de caracteres de data. |
|
| Se deve ignorar colunas de todos os valores nulos ou matrizes e estruturas vazias durante a inferência do esquema. |
|
| O nome da codificação dos arquivos JSON. Consulte |
|
| Se deve tentar inferir strings de carimbo de data/hora como |
| Nenhum, que abrange | Uma string entre dois registros JSON consecutivos. |
|
| Um identificador |
|
| A profundidade máxima de aninhamento permitida para objetos e matrizes JSON. Aumente esse valor para documentos profundamente aninhados. Valores válidos: números inteiros positivos. |
|
| O comprimento máximo dos tokens numéricos na entrada JSON. Aumente esse valor para JSON com literais numéricos grandes. Valores válidos: números inteiros positivos. |
| Ilimitadas | O comprimento máximo dos valores de string na entrada JSON . Configure para limitar o uso de memória ao analisar JSON com strings grandes. Valores válidos: números inteiros positivos. |
|
| Modo de análise sintática para lidar com registros malformados. Valores válidos: |
|
| Se os registros JSON abrangem múltiplas linhas. |
|
| Tenta inferir strings como |
|
| Se inferir tipos primitivos como números e booleanos como |
|
| Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando |
| Nenhuma | Decidiu-se se todos os dados que não puderam ser analisados devido a uma incompatibilidade de tipo de dados ou de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados recuperados?
|
| Nenhuma | Indica se o documento JSON completo deve ser ingerido e analisado em uma única coluna Variant com as strings especificadas como nome da coluna. Caso não sejam definidos, os campos JSON são inseridos em suas próprias colunas. Valores válidos: quaisquer sequências de caracteres. |
|
| O formato para analisar cadeias de caracteres de carimbo de data/hora. |
|
| O formato para analisar timestamps sem fuso horário ( |
| Nenhuma | O |
|
| Definir se as exceções de atualização de tipo (por exemplo, quando um valor não pode ser ampliado para o tipo de coluna declarado) devem ser tratadas como registros inválidos em vez de lançar uma exceção. |
ORC
Chave | Padrão | Descrição |
|---|---|---|
|
| Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. |
Parquet
Chave | Padrão | Descrição |
|---|---|---|
|
| Controla o rebase dos valores DATE e TIMESTAMP entre calendários gregoriano juliano e proléptico. Valores válidos: |
|
| Controla o rebase dos valores do timestamp INT96 entre calendários gregoriano juliano e proléptico. Valores válidos: |
|
| Se deve inferir o esquema em vários arquivos e mesclar o esquema de cada arquivo. |
|
| Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando |
| Nenhuma | Determinar se todos os dados que não puderam ser analisados devido a: incompatibilidade de tipo de dados e incompatibilidade de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados recuperados?
|
Texto
Chave | Padrão | Descrição |
|---|---|---|
|
| O nome da codificação do separador de linhas do arquivo TEXT. Para uma lista de opções, veja |
| Nenhum, que abrange | Uma string entre dois registros TEXT consecutivos. |
|
| Se deve ler um arquivo como um único registro. |
XML
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | A tag de linha dos arquivos XML a serem tratados como uma linha. No exemplo XML |
|
| Define a fração de linhas usadas para inferência de esquema. As funções integradas XML ignoram esta opção. Valores válidos: |
|
| Se deve ou não excluir atributos dos elementos. |
| Nenhuma | Mode para lidar com registros corrompidos durante a análise sintática. |
|
| Se |
|
| Permite renomear o novo campo que contém strings malformadas criadas pelo modo |
| Nenhuma | O prefixo dos atributos serve para diferenciá-los dos elementos. Este será o prefixo para os nomes dos campos. O valor padrão é |
|
| A tag usada para os dados de caracteres dentro de elementos que também possuem atributos ou elementos filhos. O usuário pode especificar o campo |
|
| Para leitura, decodifica os arquivos XML de acordo com o tipo de codificação fornecido. Para escrita, especifica a codificação (conjunto de caracteres) dos arquivos XML salvos. As funções integradas XML ignoram esta opção. Isso também se aplica às opções XML do DataFrameWriter. |
|
| Se os espaços em branco ao redor dos valores devem ser ignorados. Os dados de caracteres compostos apenas por espaços em branco são ignorados. |
| Nenhuma | Caminho para um arquivo XSD opcional usado para validar o XML de cada linha individualmente. As linhas que não forem validadas serão tratadas como erros de análise sintática. O XSD não afeta o esquema de nenhuma outra forma, seja ele fornecido ou inferido. |
|
| Se |
|
| Cadeias de formato de carimbo de data/hora personalizadas que seguem o padrão de formato de data e hora . Isso se aplica ao tipo |
|
| Cadeias de formato personalizadas para carimbo de data/hora sem fuso horário, seguindo o formato de padrão de data e hora. Isso se aplica ao tipo TimestampNTZType. Isso também se aplica às opções XML do DataFrameWriter. |
|
| Cadeias de formato de data personalizadas que seguem o padrão de data e hora . Isso se aplica ao tipo de data. Isso também se aplica às opções XML do DataFrameWriter. |
|
| Define uma localidade como uma tag de idioma no formato IETF BCP 47. Por exemplo, |
| string | Define a representação em string de um valor nulo. Quando este valor é |
|
| Especifica o comportamento de diferenciação entre maiúsculas e minúsculas quando rescuedDataColumn está habilitado. Se verdadeiro, recupere as colunas de dados cujos nomes diferem em maiúsculas e minúsculas do esquema. Quando falso, leia os dados sem diferenciar maiúsculas de minúsculas. |
| Nenhuma | Determinar se todos os dados que não puderam ser analisados devido a uma incompatibilidade de tipo de dados e de esquema (incluindo maiúsculas e minúsculas nas colunas) devem ser coletados em uma coluna separada. Esta coluna é incluída por default ao usar Auto Loader. Para obter mais detalhes, consulte O que é a coluna de dados recuperados?. |
|
| Especifica o nome da coluna de variante única. Se esta opção for especificada para leitura, analise todo o registro XML em uma única coluna Variant com o valor da string de opção fornecida como nome da coluna. Se esta opção estiver disponível para gravação, escreva o valor da coluna Variant única em arquivos XML. Isso também se aplica às opções XML do DataFrameWriter. |
|
| Se deve ser utilizado o analisador XML legado. O analisador sintático legado possui uma validação menos rigorosa para conteúdo malformado, mas é menos eficiente em termos de memória. Defina como |
|
| O nome da coluna usada para capturar elementos XML que correspondem ao elemento de esquema curinga ( |
Opções do DataStreamReader
Use estas opções com DataStreamReader.option() para configurar leituras de transmissão de tabelas Delta Lake e outras fontes baseadas em arquivos.
Para opções de formato de arquivo (JSON, CSV, Parquet e outros), consulte as opções do DataFrameReader.
Para opções de Auto Loader (cloudFiles.*), consulte Auto Loader.
Exemplo
O exemplo a seguir define maxFilesPerTrigger como 10 para uma tabela Delta Lake :
- Python
- Scala
df = spark.readStream.format("delta").option("maxFilesPerTrigger", 10).load("/path/to/delta-table")
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 transmissão baseadas em ficheiros.
Chave | Padrão | Descrição |
|---|---|---|
|
| Como lidar com arquivos de origem após serem processados pela transmissão. Valores válidos: |
|
| Se os arquivos já processados devem ser identificados apenas pelo nome do arquivo, em vez do caminho completo. Quando |
|
| Se os arquivos modificados mais recentemente devem ser processados primeiro dentro de cada microlote. Útil quando você deseja processar os dados mais recentes o mais rápido possível. Quando |
| Nenhuma | Limite máximo flexível para a quantidade de dados processados por microlote. Um lote pode processar mais do que o limite se a menor unidade de entrada o exceder. Quando usado em conjunto com Para o Auto Loader, use |
|
| Número máximo de arquivos não processados a serem armazenados em cache para micro-lotes subsequentes. Defina como |
|
| Idade máxima dos arquivos considerados para processamento, em relação ao carimbo de data/hora do arquivo modificado mais recentemente, e não à hora atual do sistema. Arquivos mais antigos que esse limite serão ignorados. Aceita strings de duração como |
|
| Limite superior para o número de novos arquivos processados em cada microlote. Quando usado em conjunto com Para o Auto Loader, use |
| Nenhuma | Caminho para o diretório de arquivos quando |
Auto Loader
Use estas opções com a fonte cloudFiles para configurar Auto Loader para ingestão de transmissão a partir do armazenamento cloud . As opções específicas da fonte cloudFiles são prefixadas com cloudFiles para mantê-las em um espaço de nomes separado de outras opções de fonte de transmissão estruturada .
Comum
Chave | Padrão | Descrição |
|---|---|---|
|
| Se permitir que alterações no arquivo do diretório de entrada substituam os dados existentes. Para ressalvas sobre a configuração, consulte "O Auto Loader processa o arquivo novamente quando ele é anexado ou sobrescrito?". |
| Nenhuma | O Auto Loader pode acionar preenchimentos assíncronos em um intervalo determinado. Por exemplo, Não use quando |
|
| Indica se os arquivos processados devem ser excluídos automaticamente do diretório de entrada. Quando definido como Quando definido como Quando definido como Um arquivo é considerado processado quando possui um valor não nulo para Analise as seguintes considerações antes de ativar
Disponível no Databricks Runtime 16.4 e versões superiores. |
|
| Tempo de espera antes que os arquivos processados se tornem candidatos ao arquivamento com O valor é uma string do tipo CalendarInterval . Por exemplo, Disponível no Databricks Runtime 16.4 e versões superiores. |
| Nenhuma | Caminho para arquivar os arquivos processados quando O local da mudança deve:
O Auto Loader precisa ter permissão de escrita neste diretório. Disponível no Databricks Runtime 16.4 e versões superiores. |
| Nenhuma (opção obrigatória) | O formato do arquivo de dados no caminho de origem. Os valores válidos incluem:
|
|
| Se os arquivos existentes devem ser incluídos no caminho de entrada do processamento da transmissão ou se devem ser processados somente os novos arquivos que chegarem após a configuração inicial. Essa opção é avaliada somente quando você inicia uma transmissão pela primeira vez. Alterar esta opção após reiniciar a transmissão não tem efeito. |
|
| Se deve ou não inferir os tipos exatos das colunas ao utilizar a inferência de esquema. Por default, as colunas são inferidas como strings ao inferir conjuntos de dados JSON e CSV . Consulte a seção sobre inferência de esquema para obter mais detalhes. |
| Nenhuma | O número máximo de novos bytes a serem processados em cada gatilho. Você pode especificar uma sequência de bytes, como No Databricks Runtime 18.0 e versões superiores, essa opção é configurada dinamicamente e não precisa ser definida manualmente. |
| Nenhuma | Por quanto tempo um evento de arquivo é rastreado para fins de desduplicação. A Databricks não recomenda ajustar esse parâmetro, a menos que você esteja ingerindo dados na ordem de milhões de arquivos por hora. Consulte a seção sobre acompanhamento de eventos de arquivo para obter mais detalhes. Ajustar |
|
| O número máximo de novos arquivos a serem processados em cada gatilho. Quando usado junto com No Databricks Runtime 18.0 e versões superiores, essa opção é configurada dinamicamente e não precisa ser definida manualmente. |
| Nenhuma | Uma lista separada por vírgulas das colunas de partição no estilo Hive que você gostaria de inferir da estrutura de diretórios dos arquivos. As colunas de partição no estilo Hive são pares key-valor combinados por um sinal de igualdade como
Especificar
|
|
| O modo de evolução do esquema à medida que novas colunas são descobertas nos dados. Por default, as colunas são inferidas como strings ao inferir um conjunto de dados JSON . Consulte a seção sobre a evolução do esquema para obter mais detalhes. |
| Nenhuma | Informações de esquema que você fornece ao Auto Loader durante a inferência de esquema. Consulte as dicas do esquema para obter mais detalhes. |
| Nenhum (necessário para inferir o esquema) | Local para armazenar o esquema inferido e as alterações subsequentes. Consulte a seção sobre inferência de esquema para obter mais detalhes. |
|
| Se deve ser utilizado um globber estrito que corresponda ao comportamento de globbing default de outras fontes de arquivos no Apache Spark. Consulte Padrões comuns de carregamento de dados para obter mais detalhes. Disponível no Databricks Runtime 12.2 LTS e versões superiores. |
|
| Se deve validar as opções do Auto Loader e retornar um erro para opções desconhecidas ou inconsistentes. |
Listagem de diretório
Chave | Padrão | Descrição |
|---|---|---|
|
| Este recurso foi descontinuado. A Databricks recomenda o uso do modo de notificação de arquivo com eventos de arquivo em vez de Se deve usar a listagem incremental em vez da listagem completa no modo de listagem de diretório. Por default, Auto Loader faz o possível para detectar automaticamente se um determinado diretório é aplicável à listagem incremental. Você pode usar explicitamente a listagem incremental ou usar a listagem completa do diretório definindo-a como Habilitar incorretamente a listagem incremental em um diretório sem ordem lexicográfica impede que o Auto Loader descubra novos arquivos. Funciona com o Azure Data Lake Storage ( Disponível no Databricks Runtime 9.1 LTSe acima.
Valores disponíveis: |
Notificação de arquivo
Para obter informações sobre como configurar o modo de notificação de arquivos, incluindo permissões cloud necessárias, instruções de configuração e métodos de autenticação, consulte Configurar transmissões Auto Loader no modo de notificação de arquivos.
Chave | Padrão | Descrição |
|---|---|---|
|
| Número de segmentos a serem usados ao buscar mensagens do serviço de enfileiramento. Não use quando |
| Nenhuma | Necessário apenas se você especificar um Não use quando |
| Nenhuma | Uma série de pares de tags de valor chave para ajudar a associar e identificar recursos relacionados, por exemplo:
Para obter mais informações sobre AWS, consulte tagsde alocação de custosAmazon SQS e Configurando tags para um tópico Amazon SNS. (1) Para mais informações sobre Azure, consulte Filas de Nomeação e Metadados e a cobertura de Para obter mais informações sobre GCP, consulte Relatório de uso com rótulo. (1) Não use quando |
|
| Quando definido como Os eventos de arquivo proporcionam desempenho de nível de notificação na descoberta de arquivos, pois o Auto Loader consegue descobrir novos arquivos após a última execução. Diferentemente da listagem de diretórios, esse processo não precisa listar todos os arquivos do diretório. Existem algumas situações em que o Auto Loader usa a listagem de diretórios mesmo quando a opção de eventos de arquivo está ativada:
Consulte Quando o Auto Loader com eventos de arquivo usa a listagem de diretórios? Para obter uma lista completa das situações em que o Auto Loader usa a listagem de diretórios com esta opção. Disponível no Databricks Runtime 14.3 LTS e versões superiores. |
|
| Quando definido como |
|
| Ativar ou desativar o modo de notificação de arquivos para detectar a presença de novos arquivos. Se Não use quando |
(1) O Auto Loader adiciona os seguintes pares de tags de chave-valor por padrão com base no melhor esforço:
vendor:Databrickspath: O local de onde os dados são carregados. Indisponível no GCP devido a limitações de rotulagem.checkpointLocationLocalização do posto de controle da transmissão. Não disponível no GCP devido a limitações de rótulo.streamId: um identificador globalmente exclusivo para a transmissão.
Databricks reserva esses nomes key e você não pode sobrescrever seus valores.
específico da nuvem
Auto Loader oferece opções para configurar a infraestrutura cloud para o modo de notificação de arquivos. Para obter informações sobre as permissões cloud necessárias e as instruções de configuração, consulte Configurar Auto Loader transmissões no modo de notificação de arquivos.
AWS
Forneça as seguintes opções somente se você escolher cloudFiles.useNotifications = true e quiser que Auto Loader configure o serviço de notificação para você:
Chave | Padrão | Descrição |
|---|---|---|
| A região da instância EC2 | A região onde reside o bucket S3 de origem e onde você deseja criar os serviços AWS SNS e SQS. |
Chave | Padrão | Descrição |
|---|---|---|
|
| Permitir notificações de eventos somente de buckets do AWS S3 na mesma account que o tópico do SNS. Quando ativada, Auto Loader aceita apenas notificações de eventos de buckets do AWS S3 na mesma account que o tópico do SNS. Quando Disponível no Databricks Runtime 17.2 e versões superiores. |
Forneça a seguinte opção apenas se escolher cloudFiles.useNotifications = true e pretender que o Auto Loader utilize uma fila que já configurou:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O URL da fila SQS. Se fornecido, o Auto Loader consome diretamente os eventos dessa fila em vez de configurar seus próprios serviços AWS SNS e SQS. |
opções de autenticação da AWS
Forneça a seguinte opção de autenticação para usar uma credencial de serviço do Databricks:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O nome da sua credencial de serviço do Databricks. Disponível no Databricks Runtime 16.1 e versões superiores. |
Quando as credenciais do serviço Databricks ou a função IAM não estiverem disponíveis, você pode fornecer as seguintes opções de autenticação:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | A ID da chave de acesso AWS para o usuário. Deve ser fornecido com |
| Nenhuma | A chave de acesso secreto da AWS para o usuário. Deve ser fornecido com |
| Nenhuma | O ARN de uma IAM role a ser assumida, se necessário. A função pode ser assumida a partir do instance profile do seu cluster ou fornecendo credenciais com |
| Nenhuma | Um identificador a ser fornecido ao assumir uma função usando |
| Nenhuma | Um nome de sessão opcional para utilizar ao assumir um papel utilizando |
| Nenhuma | Um ponto final opcional a ser fornecido para acessar o AWS STS ao assumir uma função utilizando o |
Azure
Você deve fornecer valores para todas as seguintes opções se especificar cloudFiles.useNotifications = true e desejar que o Auto Loader configure os serviços de notificação para você:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O grupo de recursos Azure no qual a account de armazenamento foi criada. |
| Nenhuma | O ID de inscrição Azure no qual o grupo de recursos foi criado. |
| Nenhuma | O nome da sua credencial de serviço do Databricks. Disponível no Databricks Runtime 16.1 e versões superiores. |
Caso as credenciais de serviço do Databricks não estejam disponíveis, você pode fornecer as seguintes opções de autenticação:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O ID do cliente ou o ID do aplicativo da entidade de serviço Databricks. |
| Nenhuma | O segredo do cliente da entidade de serviço Databricks . |
| Nenhuma | A string de caracteres de conexão para a conta de armazenamento, com base na chave de acesso à conta ou na assinatura de acesso compartilhado (SAS). |
| Nenhuma | O ID do inquilino Azure no qual a entidade de serviço Databricks é criada. |
Forneça a seguinte opção somente se você definir cloudFiles.useNotifications = true e quiser que o Auto Loader use uma fila existente:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O nome da fila do Azure. Se fornecida, a fonte de arquivos cloud consome eventos diretamente dessa fila, em vez de configurar seu próprio serviço Azure Event Grid e Queue Storage. Nesse caso, seu |
GCP
Auto Loader pode configurar automaticamente o serviço de notificações para você, utilizando as credenciais do serviço Databricks . A account de serviço criada com as credenciais de serviço Databricks exigirá as permissões especificadas em Configurar transmissão Auto Loader no modo de notificação de arquivo.
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O ID do projeto ao qual o bucket do GCS pertence. A assinatura Pub/Sub do Google Cloud também foi criada dentro deste projeto. |
| Nenhuma | O nome da sua credencial de serviço do Databricks. Disponível no Databricks Runtime 16.1 e versões superiores. |
Caso não tenha credenciais de serviço Databricks , você pode usar diretamente sua conta do Google. Você pode configurar seu cluster para assumir uma account de serviço seguindo as instruções de configuração do serviço do Google ou fornecer as seguintes opções de autenticação diretamente:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | A ID do cliente da conta do Google Service. |
| Nenhuma | O e-mail da Conta de Serviço do Google. |
| Nenhuma | A key privada gerada para a conta do serviço do Google. |
| Nenhuma | O ID da key privada gerada para a conta do serviço Google. |
Forneça a seguinte opção apenas se escolher cloudFiles.useNotifications = true e pretender que o Auto Loader utilize uma fila que já configurou:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O nome da assinatura do Google Cloud Pub/Sub. Se fornecido, a fonte de arquivos na nuvem consome eventos desta fila em vez de configurar seus próprios serviços de Notificação GCS e Google Cloud Pub/Sub. |
Delta Lake
As seguintes opções se aplicam ao ler de uma tabela Delta Lake usando spark.readStream.
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | Defina com um número de versão da tabela Delta ou |
| Nenhuma | Defina com um número de versão da tabela Delta ou |
| Nenhuma | Defina com um número de versão da tabela Delta ou |
| Nenhuma | Um padrão de expressão regular. Os arquivos cujos caminhos correspondem ao padrão são excluídos da transmissão lida. Útil para filtrar arquivos que não estejam de acordo com a convenção de nomenclatura esperada. |
|
| Se deve falhar a consulta de transmissão se os dados de origem tiverem sido excluídos devido à retenção log ( |
|
| Disponível no Databricks Runtime 11.3 LTS e versões anteriores. Reemite arquivos de dados reescritos após operações de modificação como |
|
| Ignora transações que excluem dados nos limites das partições (apenas exclusões completas de partições). Não lida com exclusões, atualizações ou outras modificações que não envolvam partições. Use |
|
| Indica se a leitura do feed de dados de alterações para a consulta de transmissão deve ser habilitada. Quando ativada, a transmissão emite alterações em nível de linha (inserções, atualizações e exclusões) com colunas de metadados adicionais. Consulte a seção "Usar o feed de dados de alterações do Delta Lake" no Databricks. |
| Nenhuma | Caminho para um diretório onde Delta Lake rastreia as alterações de esquema para a leitura de transmissão. Necessário quando transmitido de tabelas com mapeamento de coluna ativado e usando opções |
|
| Ignora transações que excluem ou modificam registros existentes e processa apenas as que adicionam informações. A Databricks recomenda esta opção para a maioria das cargas de trabalho que não utilizam feeds de dados de alterações. Disponível no Databricks Runtime 12.2 LTS e versões superiores. Consulte Ignorar commit de alteração upstream com |
| Última versão disponível | Marca de tempo para iniciar a leitura. A transmissão lê todas as alterações de tabela confirmadas na data e hora especificadas ou posteriormente. Se o carimbo de data/hora for anterior a todos os commits disponíveis na tabela, a transmissão começará a partir do commit mais antigo disponível. Não pode ser usado em conjunto com Aceita strings de carimbo de data/hora como |
| Última versão disponível | Versão da tabela Delta a partir da qual iniciar a leitura. A transmissão lê todas as alterações efetuadas na versão especificada ou posteriormente. Especifique |
|
| Divide a tabela inicial Snapshot em intervalos de tempo de eventos para evitar que registros sejam marcados incorretamente como eventos tardios e descartados em consultas com estado que contenham marcas d'água. Não pode ser alterado após o início do processamento inicial do Snapshot sem excluir o ponto de verificação. Disponível no Databricks Runtime 11.3 LTS e versões superiores. Consulte Processar instantâneo inicial sem descartar dados. |
Opções do DataFrameWriter
Use estas opções com DataFrameWriter.option() e DataFrameWriterV2.option() para controlar como o Databricks grava os dados.
Exemplo
O exemplo a seguir define mergeSchema como True para escrever uma tabela Delta Lake:
- Python
- Scala
df.write.format("delta").option("mergeSchema", True).saveAsTable("my_table")
df.write.format("delta").option("mergeSchema", "true").saveAsTable("my_table")
Avro
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O esquema Avro completo como uma string JSON . Use esta opção para converter tipos Spark SQL em tipos Avro específicos. Aplica-se a arquivos Avro. |
| Nenhuma | Uma URL que aponta para um arquivo de esquema Avro. Use em vez de |
|
| Codec de compressão a ser usado na gravação. Valores válidos: |
|
| O nome do registro de nível superior no esquema Avro de saída. Aplica-se a arquivos Avro. |
|
| Indica se a correspondência entre as colunas do esquema Spark e do esquema Avro deve ser feita por posição do campo em vez de por nome. Aplica-se a arquivos Avro. |
| Cadeias vazias | O namespace para o registro de nível superior no esquema Avro de saída. Aplica-se a arquivos Avro. |
Delta Lake e Iceberg Apache
Chave | Padrão | Descrição |
|---|---|---|
|
| Ativar ou não clustering líquido automático, em que Databricks seleciona colunas clustering com base em padrões de consulta. Válido apenas com |
| Nenhuma | Se deve ser habilitada a evolução do esquema para as operações de gravação. Novas colunas no DataFrame de origem são adicionadas ao esquema da tabela de destino. Aplica-se a lotes e anexos de transmissão. Aplica-se à atualização do esquema da tabela. |
| Nenhuma | Se deve substituir o esquema da tabela e o particionamento ao sobrescrever. Requer |
| Nenhuma | O modo de sobrescrita de partição. Defina este valor como |
| Nenhuma | Uma expressão booleana que compara linhas na tabela de destino para substituir por linhas da consulta de origem. É possível referenciar colunas tanto da tabela de destino quanto da consulta de origem. As linhas no destino que correspondem a uma linha de origem são excluídas e substituídas. Se a origem estiver vazia, nenhuma exclusão ocorrerá. Use |
| Nenhuma | Uma lista de nomes de colunas separados por vírgulas, usada para encontrar correspondências entre as linhas da tabela de destino e da consulta de origem. Tanto o destino quanto a origem devem conter todas as colunas listadas. As linhas no destino que correspondem a uma linha de origem na comparação de igualdade são excluídas e substituídas. Os valores |
| Nenhuma | Uma expressão predicativa. Sobrescreve atomicamente apenas os registros que correspondem ao predicado. Aplica-se à sobrescrita seletiva de dados com o Delta Lake. |
| Nenhuma | Um alias de string para a tabela de destino. Use com |
| Nenhuma | Uma string única que identifica a aplicação para escritas idempotentes em |
| Nenhuma | Um número monotonicamente crescente usado como versão de transação para escritas idempotentes em operações |
| Nenhuma | Indica se deseja ativar a otimização automática de gravação para esta operação de gravação. Substitui a configuração |
| Nenhuma | Uma sequência de caracteres definida pelo usuário é anexada aos metadados commit das operações de escrita. Visível na saída de |
CSV
Chave | Padrão | Descrição |
|---|---|---|
|
| O caractere usado para escapar do caractere de escape quando ele difere do caractere de aspas. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| Codec de compressão a ser usado na gravação. Valores válidos: |
|
| Cadeias de formatação para valores de coluna de data. Aplica-se a arquivos CSV (DataFrameWriter). |
| Cadeias vazias | As strings escritas para valores vazios (não nulos). Aplica-se a arquivos CSV (DataFrameWriter). |
|
| A codificação de caracteres para os arquivos de saída. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| O caractere usado para escapar valores entre aspas. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| Indica se os caracteres de aspas devem ser escapados dentro de valores de campos entre aspas. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| Indica se os nomes das colunas devem ser exibidos como a primeira linha da saída. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| Se deve ou não remover os espaços em branco iniciais dos valores ao escrever. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| Se deve ou não remover os espaços em branco à direita dos valores ao escrever. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| As sequências de caracteres que separam as linhas entre os registros. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| Um identificador |
| Cadeias vazias | strings escritas para valores nulos. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| O caractere usado para delimitar valores de campos que contêm o separador. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| Indica se todos os valores dos campos devem ser colocados entre aspas, independentemente do conteúdo. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| O caractere delimitador de campo. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| As strings de formatação para os valores da coluna de carimbo de data/hora. Aplica-se a arquivos CSV (DataFrameWriter). |
|
| Strings de formatação para valores de coluna de carimbo de data/hora sem fuso horário ( |
Excel
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | O nome da planilha ou a célula inicial para a escrita. Se omitido, escreve em uma planilha chamada |
|
| Cadeias de formatação de células Excel aplicadas às colunas |
|
| Indica se os nomes das colunas devem ser escritos como a primeira linha. Valores válidos: |
|
| Cadeias de formatação de células Excel aplicadas às colunas |
|
| Versão do formato de arquivo Excel a ser gravada. Valores válidos: |
JSON
Chave | Padrão | Descrição |
|---|---|---|
|
| Codec de compressão a ser usado na gravação. Valores válidos: |
|
| Cadeias de formatação para valores de coluna de data. Aplica-se a JSON (DataFrameWriter). |
|
| A codificação de caracteres para os arquivos de saída. Aplica-se a JSON (DataFrameWriter). |
| valor de | Indica se os campos com valores nulos devem ser omitidos da saída JSON. Aplica-se a JSON (DataFrameWriter). |
|
| As sequências de caracteres que separam as linhas entre os registros. Aplica-se a JSON (DataFrameWriter). |
|
| Um identificador |
|
| Ativar ou desativar a saída JSON formatada (com recuo e várias linhas). |
|
| Indica se a chave dos objetos JSON deve ser classificada em ordem alfabética na saída. Útil para produzir resultados determinísticos. |
|
| As strings de formatação para os valores da coluna de carimbo de data/hora. Aplica-se a JSON (DataFrameWriter). |
|
| Strings de formatação para valores de coluna de carimbo de data/hora sem fuso horário ( |
|
| Indica se os caracteres não ASCII devem ser codificados como sequências de escape Unicode |
ORC
Chave | Padrão | Descrição |
|---|---|---|
|
| Codec de compressão a ser usado na gravação. Valores válidos: |
Parquet
Chave | Padrão | Descrição |
|---|---|---|
|
| Codec de compressão a ser usado na gravação. Valores válidos: |
|
| O tipo físico usado para codificar colunas de carimbo de data/hora. Valores válidos: |
Texto
Chave | Padrão | Descrição |
|---|---|---|
|
| Codec de compressão a ser usado na gravação. Valores válidos: |
|
| A codificação de caracteres para os arquivos de saída. |
|
| As sequências de caracteres que separam as linhas entre os registros. Aplica-se ao texto (DataFrameWriter). |
XML
Chave | Padrão | Descrição |
|---|---|---|
|
| O nome do elemento para elementos de matriz que não possuem um nome explícito. Aplica-se a xml (DataFrameWriter). |
|
| O prefixo adicionado aos nomes de campos que correspondem a atributos XML. Aplica-se a xml (DataFrameWriter). |
|
| Codec de compressão a ser usado na gravação. Valores válidos: |
|
| Cadeias de formatação para valores de coluna de data. Aplica-se a xml (DataFrameWriter). |
|
| As strings de declaração XML escritas no início de cada arquivo de saída. Defina como uma string vazia para suprimir a declaração. Aplica-se a xml (DataFrameWriter). |
|
| A codificação de caracteres para os arquivos de saída. Aplica-se a xml (DataFrameWriter). |
| 4 espaços | As strings usadas para indentar os elementos filhos na saída. Defina como uma string vazia para desativar o recuo e escrever cada linha em uma única linha. |
|
| Um identificador |
|
| As strings escritas para valores nulos. Quando definido como |
|
| A tag do elemento raiz que envolve todos os elementos da linha na saída. Aplica-se a xml (DataFrameWriter). |
|
| A tag do elemento que representa uma linha na saída. Aplica-se a xml (DataFrameWriter). |
| Nenhuma | O nome da única coluna Variant a ser gravada nos arquivos XML. Aplica-se a xml (DataFrameWriter). |
|
| As strings de formatação para os valores da coluna de carimbo de data/hora. Aplica-se a xml (DataFrameWriter). |
|
| Formatar strings para carimbo de data/hora sem valores de coluna de fuso horário. Aplica-se a xml (DataFrameWriter). |
|
| Indica se deve ser lançada uma exceção caso o nome de uma coluna não seja um identificador de elemento XML válido. Aplica-se a xml (DataFrameWriter). |
|
| O nome do campo usado para dados de caracteres em elementos XML que também possuem atributos ou elementos filhos. Aplica-se a xml (DataFrameWriter). |
Opções do DataStreamWriter
Use estas opções com DataStreamWriter.option() para configurar gravações de transmissão.
Exemplo
O exemplo a seguir define a localização do ponto de verificação para uma transmissão:
- Python
- Scala
(df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table"))
df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table")
Comum
Chave | Padrão | Descrição |
|---|---|---|
| Nenhum (obrigatório) | Caminho para o diretório de checkpoint da consulta de transmissão. Requerido para tolerância a falhas e garantias de processamento exatamente uma vez. Cada consulta de transmissão deve usar um local de ponto de verificação exclusivo. Databricks recomenda armazenar os pontos de verificação em um volume Unity Catalog ou em um caminho de armazenamento cloud . Veja postos de controle de transmissão estruturada. |
| Nenhuma | Caminho de saída para destinos de transmissão baseados em arquivos, como Parquet. Aplica-se somente a formatos baseados em arquivos. |
pia de console
Chave | Padrão | Descrição |
|---|---|---|
|
| O número de linhas a serem exibidas por microlote ao escrever no coletor de dados do console. |
|
| Indica se as strings longas devem ser truncadas ao exibir as linhas. Defina como |
Delta Lake
As seguintes opções se aplicam ao gravar uma transmissão em uma tabela Delta Lake usando format("delta"). Opções somente de sobrescrita, como overwriteSchema, replaceWhere e partitionOverwriteMode não são suportadas para gravações de transmissão.
Chave | Padrão | Descrição |
|---|---|---|
|
| Se deve ou não evoluir o esquema da tabela Delta Lake quando o DataFrame de transmissão contiver novas colunas. Aplica-se somente ao modo de saída de anexos. Aplica-se à atualização do esquema da tabela. |
| Nenhuma | Uma sequência de caracteres definida pelo usuário é anexada aos metadados commit das operações de escrita. Visível na saída de |
Pia de arquivo
A seguinte opção aplica-se ao gravar uma transmissão em formatos baseados em arquivos (Parquet, JSON, CSV, ORC, texto). Para opções específicas de formato, consulte Opções do DataFrameWriter.
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | Por quanto tempo devo reter os arquivos de metadados do coletor usados para tolerância a falhas e compactação? Aceita strings de tempo como |
Pia de Kafka
Para obter uma lista completa das opções para escrever transmissões para Kafka, consulte Opções.
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | Obrigatório. Uma lista de endereços de brokers Kafka |
| Nenhuma | O tópico de destino do Kafka para todas as linhas. Obrigatório se o DataFrame não incluir uma coluna |
| Nenhuma | Qualquer configuração de produtor Kafka com o prefixo |
Pia de memória
Chave | Padrão | Descrição |
|---|---|---|
| Nenhum (obrigatório) | O nome da tabela na memória na qual a consulta grava. Necessário para o armazenamento de memória. Também configurável via |
|
| Garantia de entrega para a pia de memória. |
Opções da função Spark
Algumas funções integradas Spark SQL aceitam um mapa options que controla o comportamento de análise ou serialização. Passe opções como um Python dict ou um Scala Map[String, String].
Exemplo
O exemplo a seguir analisa uma coluna JSON, descartando registros malformados:
- Python
- Scala
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"}))
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 correspondentes do DataFrame:
from_avroeschema_of_avrousam opções Avro do DataFrameReader.to_avroUtiliza opções Avro do DataFrameWriter.
Exemplo
O exemplo a seguir decodifica uma coluna Avro com evolução do esquema habilitada:
- Python
- Scala
from pyspark.sql.functions import from_avro
df = df.withColumn("decoded", from_avro("avro_col", json_schema, {"avroSchemaEvolutionMode": "restart"}))
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 Schema Registry de from_avro e to_avro aceitam as seguintes opções:
Chave | Padrão | Descrição |
|---|---|---|
| Nenhuma | ID do esquema do Confluent Schema Registry a ser usado ao decodificar dados Avro que foram codificados com um esquema incompatível com |
| Nenhuma | Propriedades de configuração do cliente do Confluent Schema Registry. Passe qualquer propriedade do cliente Confluent SR usando este prefixo, por exemplo, |
CSV
As funções CSV aceitam as mesmas opções que as opções correspondentes do DataFrame:
from_csveschema_of_csvusam as opções CSV do DataFrameReader.to_csvUtiliza as opções CSV do DataFrameWriter.
Exemplo
O exemplo a seguir lê um arquivo CSV com um separador personalizado e o valor NULL :
- Python
- Scala
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"}))
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 do DataFrame:
from_jsoneschema_of_jsonusam opções JSON do DataFrameReader.to_jsonUtiliza opções JSON do DataFrameWriter.
Exemplo
O exemplo a seguir escreve JSON com campos NULL ignorados e formatação amigável ativada:
- Python
- Scala
from pyspark.sql.functions import to_json
df = df.withColumn("json_str", to_json("struct_col", {"pretty": "true", "ignoreNullFields": "true"}))
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 usam uma fonte de dados baseada em arquivo. Os dados Protobuf são sempre lidos e gravados como colunas binárias usando essas funções. As opções são passadas como Map[String, String] e diferenciam maiúsculas de minúsculas.
Exemplo
O exemplo a seguir decodifica uma coluna Protobuf usando o modo PERMISSIVO:
- Python
- Scala
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"}))
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 do Protobuf utilizam as seguintes opções:
Chave | Padrão | Descrição |
|---|---|---|
|
| Como lidar com registros corrompidos. |
|
| Profundidade máxima de recursão para campos Protobuf recursivos. Defina como |
|
| Se deve converter campos Protobuf |
|
| Indica se os campos devem ser emitidos com valores zero ou valores default (semântica do Proto3). Quando |
|
| Indica se os campos de enumeração devem ser renderizados como valores inteiros em vez de strings. Aplica-se a |
|
| Indica se é necessário converter |
|
| Se deve desembrulhar os tipos wrapper |
|
| Indica se os tipos de mensagem Protobuf vazios devem ser mantidos no esquema de saída, inserindo uma coluna fictícia. Aplica-se a |
| Nenhuma | Nome do assunto do Registro de Esquemas. Obrigatório ao usar as variantes do Schema Registry de |
| Nenhuma | Endereço do Schema Registry (host e porta). Obrigatório ao usar as variantes do Schema Registry de |
| Nenhuma | Especifica qual mensagem Protobuf usar quando o assunto do registro de esquema contém várias mensagens. Opcional. |
XML
As funções XML aceitam as mesmas opções que as opções correspondentes do DataFrame:
from_xmleschema_of_xmlusam opções XML do DataFrameReader.to_xmlUtiliza opções XML do DataFrameWriter.
Exemplo
O exemplo a seguir escreve XML com tags raiz e de linha personalizadas:
- Python
- Scala
from pyspark.sql.functions import to_xml
df = df.withColumn("xml_str", to_xml("struct_col", {"rootTag": "records", "rowTag": "record"}))
import org.apache.spark.sql.functions.to_xml
val df = df.withColumn("xml_str", to_xml(col("struct_col"), Map("rootTag" -> "records", "rowTag" -> "record")))