to_avro

Convertit une colonne en format binaire au format Avro.

Si les deux subject sont schemaRegistryAddress 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é inscrit auprès de l’objet donné dans le Registre de schémas, ou la requête échoue au moment de l’exécution.

Syntaxe

from pyspark.sql.avro.functions import to_avro

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

Paramètres

Paramètre Type Description
data pyspark.sql.Column ou str 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 Objet dans le Registre de schéma auquel les données appartiennent.
schemaRegistryAddress str, facultatif Adresse (hôte et port) du Registre de schémas.
options dict, facultatif Options permettant de contrôler la façon dont l’enregistrement Avro est sérialisé et la configuration pour le client du registre de schémas.

Retours

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

Exemples

Exemple 1 : Conversion d’une colonne de chaîne en format binaire 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...|
+--------------------+

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

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