Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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}} |
+------------------+