json (DataFrameReader)

Načte soubory JSON a vrátí výsledky jako .DataFrame Řádky JSON (JSON s oddělovači nového řádku) se ve výchozím nastavení podporují. Pro JSON s jedním záznamem multiLine na soubor nastavte možnost na True.

Pokud schema není zadáno, tato funkce načte vstup jednou, aby určila vstupní schéma.

Syntaxe

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

Parametry

Parameter Typ Description
path str, list nebo RDD Cesta k datové sadě JSON, seznam cest nebo RDD řetězců, které ukládají objekty JSON.
schema StructType nebo str, volitelné Volitelné vstupní schéma jako StructType objekt nebo řetězec formátovaný DDL (například 'col0 INT, col1 DOUBLE').

Návraty

DataFrame

Příklady

Zapište datový rámec do souboru JSON a přečtěte si ho zpátky.

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

Čtení JSON z více adresářů

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

Přečtěte si JSON s vlastním schématem.

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