Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Läser in JSON-filer och returnerar resultatet som en DataFrame. JSON-rader (nyradsavgränsad JSON) stöds som standard. För JSON med en post per fil anger du multiLine alternativet till True.
Om schema inte anges läser den här funktionen indata en gång för att fastställa indataschemat.
Syntax
json(path, schema=None, **options)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
path |
str, list eller RDD | En sökväg till JSON-datauppsättningen, en lista över sökvägar eller en RDD med strängar som lagrar JSON-objekt. |
schema |
StructType eller str, valfritt | Ett valfritt indataschema som ett StructType objekt eller en DDL-formaterad sträng (till exempel 'col0 INT, col1 DOUBLE'). |
Retur
DataFrame
Exempel
Skriv en DataFrame till en JSON-fil och läs tillbaka den.
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|
# +---+-------+
Läs JSON från flera kataloger.
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|
# +---+-----+
Läs JSON med ett anpassat 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|
# +----+---+