json (DataFrameReader)

Laadt JSON-bestanden en retourneert de resultaten als een DataFrame. JSON-lijnen (JSON met newline-scheidingstekens) worden standaard ondersteund. Voor JSON met één record per bestand stelt u de multiLine optie in op True.

Als schema deze functie niet is opgegeven, wordt de invoer eenmaal gelezen om het invoerschema te bepalen.

Syntaxis

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

Parameterwaarden

Kenmerk Typ Beschrijving
path str, list of RDD Een pad naar de JSON-gegevensset, een lijst met paden of een RDD met tekenreeksen die JSON-objecten opslaan.
schema StructType of str, optioneel Een optioneel invoerschema als een StructType object of een DDL-opgemaakte tekenreeks (bijvoorbeeld 'col0 INT, col1 DOUBLE').

Retouren

DataFrame

Examples

Schrijf een DataFrame naar een JSON-bestand en lees het terug.

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

Lees JSON uit meerdere mappen.

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

Lees JSON met een aangepast schema.

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