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
from pyspark.sql.avro.functions import to_avro
to_avro(data, jsonFormatSchema=None, subject=None, schemaRegistryAddress=None, options=None)
parameter
parameter | Type | Description |
|---|---|---|
|
| La colonne de données à sérialiser. |
| str, facultatif | Schéma Avro de sortie spécifié par l'utilisateur au format de chaîne JSON. |
|
| Le sujet dans le Registre de schémas auquel appartiennent les données. |
| str, facultatif | L'adresse (hôte et port) du registre de schémas. |
| 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
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] |
+--------+