from_avro

Convierte una columna binaria del formato Avro en su valor de catalizador correspondiente. El esquema especificado debe coincidir con los datos de lectura; de lo contrario, el comportamiento no está definido: puede producir un error o devolver un resultado arbitrario.

Si jsonFormatSchema no se proporciona, sino tanto subject como schemaRegistryAddress se proporcionan, la función convierte una columna binaria del formato Avro del Registro de esquemas en su valor de catalizador correspondiente.

Sintaxis

from pyspark.sql.avro.functions import from_avro

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

Parámetros

Parámetro Tipo Descripción
data pyspark.sql.Column o str Columna binaria que contiene datos codificados con Avro.
jsonFormatSchema str, opcional Esquema avro en formato de cadena JSON.
options dict, opcional Opciones para controlar cómo se analiza y configura el registro de Avro para el cliente del registro de esquema.
subject str, opcional Asunto del Registro de esquema al que pertenecen los datos.
schemaRegistryAddress str, opcional Dirección (host y puerto) del Registro de esquema.

Devoluciones

pyspark.sql.Column: una nueva columna que contiene los datos avro deserializados como el valor de catalizador correspondiente.

Ejemplos

Ejemplo 1: Deserialización de una columna binaria de Avro mediante un esquema JSON

from pyspark.sql import Row
from pyspark.sql.avro.functions import from_avro, to_avro

data = [(1, Row(age=2, name='Alice'))]
df = spark.createDataFrame(data, ("key", "value"))
avro_df = df.select(to_avro(df.value).alias("avro"))
json_format_schema = '''{"type":"record","name":"topLevelRecord","fields":
    [{"name":"avro","type":[{"type":"record","name":"value",
    "namespace":"topLevelRecord","fields":[{"name":"age","type":["long","null"]},
    {"name":"name","type":["string","null"]}]},"null"]}]}'''
avro_df.select(from_avro(avro_df.avro, json_format_schema).alias("value")).show(truncate=False)
+------------------+
|value             |
+------------------+
|{{2, Alice}}      |
+------------------+