Spark SQL - Conjuntos de datos JSON

Spark SQL puede capturar automáticamente el esquema de un conjunto de datos JSON y cargarlo como un DataFrame. Esta conversión se puede hacer usandoSQLContext.read.json() en un RDD de String o en un archivo JSON.

Spark SQL proporciona una opción para consultar datos JSON junto con la captura automática de esquemas JSON para leer y escribir datos. Spark SQL comprende los campos anidados en los datos JSON y permite a los usuarios acceder directamente a estos campos sin ninguna transformación explícita.

Ejemplo

Consideremos un ejemplo de employee registros en un archivo de texto llamado employee.json. Utilice los siguientes comandos para crear un DataFrame (df).

Leer un documento JSON llamado employee.json con el siguiente contenido y generar una tabla basada en el esquema en el documento JSON.

employee.json - Coloque este archivo en el directorio donde se encuentra scala> se encuentra el puntero.

{
   {"id" : "1201", "name" : "satish", "age" : "25"}
   {"id" : "1202", "name" : "krishna", "age" : "28"}
   {"id" : "1203", "name" : "amith", "age" : "39"}
   {"id" : "1204", "name" : "javed", "age" : "23"}
   {"id" : "1205", "name" : "prudvi", "age" : "23"}
}

Realicemos algunas operaciones de marco de datos en datos dados.

Operaciones de DataFrame

DataFrame proporciona un lenguaje específico de dominio para la manipulación de datos estructurados. Aquí incluimos algunos ejemplos básicos de procesamiento de datos estructurados usando DataFrames.

Siga los pasos que se indican a continuación para realizar operaciones de DataFrame:

Leer documento JSON

En primer lugar, tenemos que leer el documento JSON. Basado en eso, genere un DataFrame llamadodfs.

Use el siguiente comando para leer el documento JSON llamado employee.jsonque contiene los campos: id, nombre y edad. Crea un DataFrame llamadodfs.

scala> val dfs = sqlContext.read.json("employee.json")

Output - Los nombres de los campos se toman automáticamente de employee.json.

dfs: org.apache.spark.sql.DataFrame = [age: string, id: string, name: string]

Utilice el método printSchema

Si desea ver la estructura (esquema) del DataFrame, utilice el siguiente comando.

scala> dfs.printSchema()

Output

root
   |-- age: string (nullable = true)
   |-- id: string (nullable = true)
   |-- name: string (nullable = true)

Mostrar los datos

Si desea mostrar los datos en el DataFrame, utilice el siguiente comando.

scala> dfs.show()

Output - Puede ver los datos de los empleados en formato tabular.

<console>:22, took 0.052610 s
+----+------+--------+
|age |  id  |  name  |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith  |
| 23 | 1204 | javed  |
| 23 | 1205 | prudvi |
+----+------+--------+

Entonces podemos ejecutar diferentes sentencias SQL en él. Los usuarios pueden migrar datos al formato JSON con un esfuerzo mínimo, independientemente del origen de la fuente de datos.