Aller au contenu principal

to_avro

Convertit une colonne en binaire au format Avro.

Si subject et schemaRegistryAddress sont fournis, la fonction convertit une colonne en binaire au format Avro du Registre de schémas. Le schéma de données d'entrée doit avoir été enregistré auprès du sujet donné dans le Registre de schémas, sinon la query échoue à l'exécution.

Syntaxe

Python
from pyspark.sql.avro.functions import to_avro

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

parameter

parameter

Type

Description

data

pyspark.sql.Column ou str

La colonne de données à sérialiser.

jsonFormatSchema

str, facultatif

Schéma Avro de sortie spécifié par l'utilisateur au format de chaîne JSON.

subject

pyspark.sql.Column ou str, facultatif

Le sujet dans le Registre de schémas auquel appartiennent les données.

schemaRegistryAddress

str, facultatif

L'adresse (hôte et port) du registre de schémas.

options

dictionnaire, facultatif

Options pour contrôler comment l'enregistrement Avro est sérialisé et configuration pour le client du registre de schémas.

parameter

Type

Description

data

pyspark.sql.Column ou str

La colonne de données à sérialiser.

jsonFormatSchema

str, facultatif

Schéma Avro de sortie spécifié par l'utilisateur au format de chaîne JSON.

subject

pyspark.sql.Column ou str, facultatif

Le sujet dans le Registre de schémas auquel appartiennent les données.

schemaRegistryAddress

str, facultatif

L'adresse (hôte et port) du registre de schémas.

options

dictionnaire, facultatif

Options pour contrôler comment l'enregistrement Avro est sérialisé et configuration pour le client du registre de schémas.

Renvoie

pyspark.sql.Column: une nouvelle colonne contenant les données binaires encodées en Avro.

Exemples

Exemple 1 : Conversion d'une colonne de chaîne au format binaire Avro

Python
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)
Output
+--------------------+
|avro |
+--------------------+
|[00 0C 53 50 41 4...|
+--------------------+

Exemple 2 : Conversion d'une colonne de chaîne en Avro à l'aide d'un schéma JSON personnalisé

Python
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)
Output
+--------+
|avro |
+--------+
|[02 00] |
+--------+