Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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|
# +----+---+