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 binaria di formato Avro nel valore catalyst corrispondente. Lo schema specificato deve corrispondere ai dati letti; in caso contrario, il comportamento non è definito: potrebbe non riuscire o restituire un risultato arbitrario.
Se jsonFormatSchema non viene specificato ma vengono forniti entrambi subject e schemaRegistryAddress , la funzione converte una colonna binaria del formato Avro del Registro schemi nel valore catalyst corrispondente.
Sintassi
from pyspark.sql.avro.functions import from_avro
from_avro(data, jsonFormatSchema=None, options=None, subject=None, schemaRegistryAddress=None)
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
data |
pyspark.sql.Column o str |
Colonna binaria contenente dati con codifica Avro. |
jsonFormatSchema |
str, facoltativo | Schema Avro in formato stringa JSON. |
options |
dict, facoltativo | Opzioni per controllare la modalità di analisi e configurazione del record Avro per il client del Registro di sistema dello schema. |
subject |
str, facoltativo | Oggetto nel Registro schemi a cui appartengono i dati. |
schemaRegistryAddress |
str, facoltativo | Indirizzo (host e porta) del Registro schemi. |
Restituzioni
pyspark.sql.Column: nuova colonna contenente i dati Avro deserializzati come valore catalizzatore corrispondente.
Examples
Esempio 1: Deserializzazione di una colonna binaria Avro usando uno schema 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}} |
+------------------+