Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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] |
+--------+