Freigeben über


to_avro

Konvertiert eine Spalte in eine Binärdatei des Avro-Formats.

Wenn beide subject und schemaRegistryAddress bereitgestellt werden, konvertiert die Funktion eine Spalte in eine Binärdatei des Schema Registry Avro-Formats. Das Eingabedatenschema muss für den angegebenen Betreff in der Schemaregistrierung registriert worden sein, oder die Abfrage schlägt zur Laufzeit fehl.

Syntax

from pyspark.sql.avro.functions import to_avro

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

Parameter

Parameter Typ Beschreibung
data pyspark.sql.Column oder str Die zu serialisierende Datenspalte.
jsonFormatSchema str, optional Vom Benutzer angegebenes Avro-Ausgabeschema im JSON-Zeichenfolgenformat.
subject pyspark.sql.Column oder str, optional Der Betreff in der Schemaregistrierung, zu dem die Daten gehören.
schemaRegistryAddress str, optional Die Adresse (Host und Port) der Schemaregistrierung.
options Diktat, optional Optionen zum Steuern der Serialisierung und Konfiguration des Avro-Eintrags für den Schemaregistrierungsclient.

Rückkehr

pyspark.sql.Column: Eine neue Spalte, die die avrocodierten Binärdaten enthält.

Beispiele

Beispiel 1: Konvertieren einer Zeichenfolgenspalte in das Avro-Binärformat

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

Beispiel 2: Konvertieren einer Zeichenfolgenspalte in Avro mithilfe eines benutzerdefinierten JSON-Schemas

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