json (DataFrameReader)

Memuat file JSON dan mengembalikan hasilnya sebagai DataFrame. JSON Lines (JSON yang dibatasi baris baru) didukung secara default. Untuk JSON dengan satu catatan per file, atur opsi ke multiLineTrue.

Jika schema tidak ditentukan, fungsi ini membaca input sekali untuk menentukan skema input.

Sintaksis

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

Parameter-parameternya

Parameter Tipe Deskripsi
path str, daftar, atau RDD Jalur ke himpunan data JSON, daftar jalur, atau RDD string yang menyimpan objek JSON.
schema StructType atau str, opsional Skema input opsional sebagai StructType objek atau string berformat DDL (misalnya, 'col0 INT, col1 DOUBLE').

Pengembalian Barang

DataFrame

Examples

Tulis DataFrame ke dalam file JSON dan baca kembali.

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

Baca JSON dari beberapa direktori.

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

Baca JSON dengan skema kustom.

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