Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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] |
+--------+