json (DataFrameReader)

Carga archivos JSON y devuelve los resultados como .DataFrame Las líneas JSON (JSON delimitado por nueva línea) se admiten de forma predeterminada. Para JSON con un registro por archivo, establezca la multiLine opción en True.

Si schema no se especifica, esta función lee la entrada una vez para determinar el esquema de entrada.

Sintaxis

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

Parámetros

Parámetro Tipo Descripción
path str, list o RDD Ruta de acceso al conjunto de datos JSON, una lista de rutas de acceso o un RDD de cadenas que almacenan objetos JSON.
schema StructType o str, opcional Un esquema de entrada opcional como un StructType objeto o una cadena con formato DDL (por ejemplo, 'col0 INT, col1 DOUBLE').

Devoluciones

DataFrame

Ejemplos

Escriba un DataFrame en un archivo JSON y vuelva a leerlo.

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

Lee JSON de varios directorios.

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

Lea JSON con un esquema personalizado.

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