Pular para o conteúdo principal

JSON (DataFrameReader)

Carrega arquivos JSON e retorna os resultados como um DataFrame. Linhas JSON ( JSON delimitado por nova linha) são suportadas por default. Para JSON com um registro por arquivo, defina a opção multiLine como True.

Se schema não for especificado, esta função lê a entrada uma vez para determinar o esquema de entrada.

Sintaxe

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

Parâmetros

Parâmetro

Tipo

Descrição

path

string, lista ou RDD

Um caminho para o dataset JSON , uma lista de caminhos ou um RDD de strings que armazena objetos JSON .

schema

StructType ou str, opcional

Um esquema de entrada opcional como um objeto StructType ou strings formatadas em DDL (por exemplo, 'col0 INT, col1 DOUBLE').

Devoluções

DataFrame

Exemplos

Escreva um DataFrame em um arquivo JSON e leia-o de volta.

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

read.json de vários diretórios.

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

read.json com um esquema personalizado.

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