get_json_object
Extrait l'objet JSON d'une chaîne JSON en fonction du JSON path spécifié, et renvoie la chaîne JSON de l'objet JSON extrait. Il renverra nul si la chaîne JSON d'entrée n'est pas valide.
Syntaxe
Python
from pyspark.sql import functions as sf
sf.get_json_object(col, path)
parameter
parameter | Type | Description |
|---|---|---|
|
| Colonne de chaîne au format JSON. |
| str | Chemin vers l'objet JSON à extraire. |
Renvoie
pyspark.sql.Column: représentation sous forme de chaîne de la valeur de l'objet JSON donné.
Exemples
Exemple 1 : Extraire un objet JSON d'une chaîne JSON
Python
from pyspark.sql import functions as sf
data = [("1", '''{"f1": "value1", "f2": "value2"}'''), ("2", '''{"f1": "value12"}''')]
df = spark.createDataFrame(data, ("key", "jstring"))
df.select(df.key,
sf.get_json_object(df.jstring, '$.f1').alias("c0"),
sf.get_json_object(df.jstring, '$.f2').alias("c1")
).show()
Output
+---+-------+------+
|key| c0| c1|
+---+-------+------+
| 1| value1|value2|
| 2|value12| NULL|
+---+-------+------+
Exemple 2 : Extraire un objet JSON à partir d'un tableau JSON
Python
from pyspark.sql import functions as sf
data = [
("1", '''[{"f1": "value1"},{"f1": "value2"}]'''),
("2", '''[{"f1": "value12"},{"f2": "value13"}]''')
]
df = spark.createDataFrame(data, ("key", "jarray"))
df.select(df.key,
sf.get_json_object(df.jarray, '$[0].f1').alias("c0"),
sf.get_json_object(df.jarray, '$[1].f2').alias("c1")
).show()
Output
+---+-------+-------+
|key| c0| c1|
+---+-------+-------+
| 1| value1| NULL|
| 2|value12|value13|
+---+-------+-------+
Python
df.select(df.key,
sf.get_json_object(df.jarray, '$[*].f1').alias("c0"),
sf.get_json_object(df.jarray, '$[*].f2').alias("c1")
).show()
Output
+---+-------------------+---------+
|key| c0| c1|
+---+-------------------+---------+
| 1|["value1","value2"]| NULL|
| 2| "value12"|"value13"|
+---+-------------------+---------+