to_avro

Convierte una columna en formato binario de Avro.

Si se proporcionan y subjectschemaRegistryAddress , la función convierte una columna en binario del formato Avro del Registro de esquemas. El esquema de datos de entrada debe haberse registrado en el asunto especificado en el Registro de esquemas o se produce un error en la consulta en tiempo de ejecución.

Sintaxis

from pyspark.sql.avro.functions import to_avro

to_avro(data, jsonFormatSchema=None, subject=None, schemaRegistryAddress=None, options=None)

Parámetros

Parámetro Tipo Descripción
data pyspark.sql.Column o str Columna de datos que se va a serializar.
jsonFormatSchema str, opcional Esquema avro de salida especificado por el usuario en formato de cadena JSON.
subject pyspark.sql.Column o str, opcional Asunto del Registro de esquema al que pertenecen los datos.
schemaRegistryAddress str, opcional Dirección (host y puerto) del Registro de esquema.
options dict, opcional Opciones para controlar cómo se serializa el registro avro y la configuración del cliente del registro de esquema.

Devoluciones

pyspark.sql.Column: una nueva columna que contiene los datos binarios codificados en Avro.

Ejemplos

Ejemplo 1: Conversión de una columna de cadena al formato binario 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...|
+--------------------+

Ejemplo 2: Conversión de una columna de cadena en Avro mediante un 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] |
+--------+