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 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] |
+--------+