JSON (DataFrameReader)
Charge les fichiers JSON et renvoie les résultats sous forme de DataFrame. Les lignes JSON (JSON délimité par des retours à la ligne) sont prises en charge by default. Pour les fichiers JSON avec un seul enregistrement par fichier, définissez l'option multiLine sur True.
Si schema n'est pas spécifié, cette fonction lit l'entrée une fois pour déterminer le schéma d'entrée.
Syntaxe
json(path, schema=None, **options)
parameter
parameter | Type | Description |
|---|---|---|
| str, list ou RDD | Un chemin vers le dataset JSON, une liste de chemins ou un RDD de chaînes stockant des objets JSON. |
| StructType ou str, facultatif. | Un schéma d'entrée facultatif en tant qu'objet |
Renvoie
DataFrame
Exemples
Écrivez un DataFrame dans un fichier JSON et relisez-le.
import tempfile
with tempfile.TemporaryDirectory(prefix="json") as d:
spark.createDataFrame(
[{"age": 100, "name": "Hyukjin"}]
).write.mode("overwrite").format("json").save(d)
spark.read.json(d).show()
# +---+-------+
# |age| name|
# +---+-------+
# |100|Hyukjin|
# +---+-------+
read.json à partir de plusieurs répertoires.
from tempfile import TemporaryDirectory
with TemporaryDirectory(prefix="json2") as d1, TemporaryDirectory(prefix="json3") as d2:
spark.createDataFrame(
[{"age": 30, "name": "Bob"}]
).write.mode("overwrite").format("json").save(d1)
spark.createDataFrame(
[{"age": 25, "name": "Alice"}]
).write.mode("overwrite").format("json").save(d2)
spark.read.json([d1, d2]).show()
# +---+-----+
# |age| name|
# +---+-----+
# | 25|Alice|
# | 30| Bob|
# +---+-----+
read.json avec un schéma personnalisé.
import tempfile
with tempfile.TemporaryDirectory(prefix="json") as d:
spark.createDataFrame(
[{"age": 30, "name": "Bob"}]
).write.mode("overwrite").format("json").save(d)
spark.read.json(d, schema="name STRING, age INT").show()
# +----+---+
# |name|age|
# +----+---+
# | Bob| 30|
# +----+---+