json (DataFrameReader)

Charge les fichiers JSON et retourne les résultats sous forme DataFramede . Les lignes JSON (JSON délimité par une nouvelle ligne) sont prises en charge par défaut. Pour JSON avec un enregistrement par fichier, définissez l’option multiLineTruesur .

Si schema elle n’est pas spécifiée, cette fonction lit une fois l’entrée pour déterminer le schéma d’entrée.

Syntaxe

json(path, schema=None, **options)

Paramètres

Paramètre Type Description
path str, list ou RDD Chemin d’accès au jeu de données JSON, liste de chemins d’accès ou RDD de chaînes stockant des objets JSON.
schema StructType ou str, facultatif Schéma d’entrée facultatif en tant qu’objet StructType ou chaîne au format DDL (par exemple). 'col0 INT, col1 DOUBLE'

Retours

DataFrame

Exemples

Écrivez un DataFrame dans un fichier JSON et lisez-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|
    # +---+-------+

Lisez 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|
    # +---+-----+

Lisez 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|
    # +----+---+