Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wandelt eine binäre Spalte des Avro-Formats in den entsprechenden Katalysatorwert um. Das angegebene Schema muss mit den Lesedaten übereinstimmen, andernfalls ist das Verhalten nicht definiert: Es schlägt fehl oder gibt ein beliebiges Ergebnis zurück.
Wenn jsonFormatSchema nicht angegeben, aber beide subject bereitgestellt werden, schemaRegistryAddress konvertiert die Funktion eine binäre Spalte des Schema Registry Avro-Formats in ihren entsprechenden Katalysatorwert.
Syntax
from pyspark.sql.avro.functions import from_avro
from_avro(data, jsonFormatSchema=None, options=None, subject=None, schemaRegistryAddress=None)
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
data |
pyspark.sql.Column oder str |
Die binäre Spalte mit avrocodierten Daten. |
jsonFormatSchema |
str, optional | Das Avro-Schema im JSON-Zeichenfolgenformat. |
options |
Diktat, optional | Optionen zum Steuern der Analyse und Konfiguration des Avro-Eintrags für den Schemaregistrierungsclient. |
subject |
str, optional | Der Betreff in der Schemaregistrierung, zu dem die Daten gehören. |
schemaRegistryAddress |
str, optional | Die Adresse (Host und Port) der Schemaregistrierung. |
Rückkehr
pyspark.sql.Column: Eine neue Spalte, die die deserialisierten Avro-Daten als entsprechenden Katalysatorwert enthält.
Beispiele
Beispiel 1: Deserialisieren einer Avro-Binärspalte mithilfe eines JSON-Schemas
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}} |
+------------------+