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 binaire au format Avro en sa valeur de catalyseur correspondante. Le schéma spécifié doit correspondre aux données de lecture, sinon le comportement n’est pas défini : il peut échouer ou retourner un résultat arbitraire.
Si jsonFormatSchema elle n’est pas fournie, mais que les deux subject sont schemaRegistryAddress fournies, la fonction convertit une colonne binaire au format Avro du Registre de schémas en sa valeur de catalyseur correspondante.
Syntaxe
from pyspark.sql.avro.functions import from_avro
from_avro(data, jsonFormatSchema=None, options=None, subject=None, schemaRegistryAddress=None)
Paramètres
| Paramètre | Type | Description |
|---|---|---|
data |
pyspark.sql.Column ou str |
Colonne binaire contenant des données encodées Avro. |
jsonFormatSchema |
str, facultatif | Schéma Avro au format de chaîne JSON. |
options |
dict, facultatif | Options permettant de contrôler l’analyse et la configuration de l’enregistrement Avro pour le client du Registre de schémas. |
subject |
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. |
Paramètres
| Option | Valeurs | Description |
|---|---|---|
mode |
FAILFAST, PERMISSIVE |
Mode de gestion des erreurs. Valeur par défaut : FAILFAST. En PERMISSIVE mode, les enregistrements endommagés sont définis sur la NULL valeur au lieu de déclencher une erreur. |
compression |
uncompressed, , snappy, deflatebzip2, , xzzstandard |
Codec de compression pour l’encodage des données Avro. |
avroSchemaEvolutionMode |
none, restart |
Mode d’évolution du schéma. Valeur par défaut : none. Lorsque la valeur est définie restart, la requête lève une UnknownFieldException fois le schéma modifié. Redémarrez le travail pour utiliser le nouveau schéma. Consultez Utiliser le mode d’évolution du schéma avec from_avro. |
recursiveFieldMaxDepth |
Plage : -1 à 15 |
Profondeur de récursivité maximale le long d’un chemin récursif unique. Valeur par défaut : -1, qui ne limite pas la profondeur de récursivité.Lorsqu’un type partagé est accessible à partir de nombreux chemins de schéma distincts, l’extension du schéma peut entraîner l’expiration de la mémoire du pilote, car cette option limite la profondeur d’un seul chemin. Pour contourner les problèmes suivants :
|
Retours
pyspark.sql.Column: nouvelle colonne contenant les données Avro désérialisées comme valeur de catalyseur correspondante.
Exemples
Exemple 1 : Désérialisation d’une colonne binaire Avro à l’aide d’un schéma JSON
from pyspark.sql import Row
from pyspark.sql.avro.functions import from_avro, to_avro
data = [(1, Row(age=2, name='Alice'))]
df = spark.createDataFrame(data, ("key", "value"))
avro_df = df.select(to_avro(df.value).alias("avro"))
json_format_schema = '''{"type":"record","name":"topLevelRecord","fields":
[{"name":"avro","type":[{"type":"record","name":"value",
"namespace":"topLevelRecord","fields":[{"name":"age","type":["long","null"]},
{"name":"name","type":["string","null"]}]},"null"]}]}'''
avro_df.select(from_avro(avro_df.avro, json_format_schema).alias("value")).show(truncate=False)
+------------------+
|value |
+------------------+
|{{2, Alice}} |
+------------------+