Condividi tramite


to_avro

Converte una colonna in formato binario di Avro.

Se vengono forniti sia subject che schemaRegistryAddress , la funzione converte una colonna in formato Binario del Registro schemi Avro. Lo schema dei dati di input deve essere stato registrato nell'oggetto specificato nel Registro schemi oppure la query non riesce in fase di esecuzione.

Sintassi

from pyspark.sql.avro.functions import to_avro

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

Parametri

Parametro Tipo Descrizione
data pyspark.sql.Column o str Colonna di dati da serializzare.
jsonFormatSchema str, facoltativo Schema Avro di output specificato dall'utente in formato stringa JSON.
subject pyspark.sql.Column o str, facoltativo Oggetto nel Registro schemi a cui appartengono i dati.
schemaRegistryAddress str, facoltativo Indirizzo (host e porta) del Registro schemi.
options dict, facoltativo Opzioni per controllare la modalità di serializzazione e configurazione del record Avro per il client del Registro di sistema dello schema.

Restituzioni

pyspark.sql.Column: nuova colonna contenente i dati binari con codifica Avro.

Examples

Esempio 1: Conversione di una colonna stringa in 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...|
+--------------------+

Esempio 2: Conversione di una colonna stringa in Avro usando uno schema JSON personalizzato

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