to_avro

Converte uma coluna em binário do formato Avro.

Se ambos subject forem schemaRegistryAddress fornecidos, a função converterá uma coluna em binário do formato Avro do Registro de Esquema. O esquema de dados de entrada deve ter sido registrado para o assunto especificado no Registro de Esquema ou a consulta falha em runtime.

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 a ser serializada.
jsonFormatSchema str, opcional Esquema Avro de saída especificado pelo usuário no formato de cadeia de caracteres JSON.
subject pyspark.sql.Column ou str, opcional O assunto no Registro de Esquema ao qual os dados pertencem.
schemaRegistryAddress str, opcional O endereço (host e porta) do Registro de Esquema.
options ditado, opcional Opções para controlar como o registro do Avro é serializado e a configuração para o cliente do registro de esquema.

Devoluções

pyspark.sql.Column: uma nova coluna que contém os dados binários codificados em Avro.

Exemplos

Exemplo 1: Convertendo uma coluna de cadeia de caracteres em formato binário do 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 cadeia de caracteres em 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] |
+--------+