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.
Converte uma coluna em binário do formato Avro.
Se ambos subject forem fornecidos schemaRegistryAddress , a função converte uma coluna em binário do formato Avro do Registo de Esquemas. O esquema de dados de entrada deve ter sido registado no assunto dado no Registo de Esquemas, caso contrário a consulta falha em tempo de execução.
Sintaxe
from pyspark.sql.avro.functions import to_avro
to_avro(data, jsonFormatSchema=None, subject=None, schemaRegistryAddress=None, options=None)
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
data |
pyspark.sql.Column ou str |
A coluna de dados para serializar. |
jsonFormatSchema |
STR, opcional | Esquema Avro especificado pelo utilizador em formato de string JSON. |
subject |
pyspark.sql.Column ou força, opcional |
O sujeito no Registo de Esquemas a que os dados pertencem. |
schemaRegistryAddress |
STR, opcional | O endereço (host e porta) do Registo de Esquemas. |
options |
Dit, opcional | Opções para controlar como o registo Avro é serializado e configuração para o cliente do registo de esquemas. |
Devoluções
pyspark.sql.Column: Uma nova coluna contendo os dados binários codificados em Avro.
Exemplos
Exemplo 1: Converter uma coluna string para formato binário Avro
from pyspark.sql.avro.functions import to_avro
data = ['SPADES']
df = spark.createDataFrame(data, "string")
df.select(to_avro(df.value).alias("avro")).show(truncate=False)
+--------------------+
|avro |
+--------------------+
|[00 0C 53 50 41 4...|
+--------------------+
Exemplo 2: Converter uma coluna de strings para Avro usando um esquema JSON personalizado
from pyspark.sql.avro.functions import to_avro
data = ['SPADES']
df = spark.createDataFrame(data, "string")
json_format_schema = '''["null", {"type": "enum", "name": "value",
"symbols": ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]}]'''
df.select(to_avro(df.value, json_format_schema).alias("avro")).show(truncate=False)
+--------+
|avro |
+--------+
|[02 00] |
+--------+