Spark SQL - Ensembles de données JSON

Spark SQL peut capturer automatiquement le schéma d'un ensemble de données JSON et le charger en tant que DataFrame. Cette conversion peut être effectuée en utilisantSQLContext.read.json() sur un RDD de String ou un fichier JSON.

Spark SQL fournit une option pour interroger les données JSON ainsi que la capture automatique des schémas JSON pour la lecture et l'écriture de données. Spark SQL comprend les champs imbriqués dans les données JSON et permet aux utilisateurs d'accéder directement à ces champs sans aucune transformation explicite.

Exemple

Prenons un exemple de employee enregistrements dans un fichier texte nommé employee.json. Utilisez les commandes suivantes pour créer un DataFrame (df).

Lire un document JSON nommé employee.json avec le contenu suivant et générez une table basée sur le schéma dans le document JSON.

employee.json - Placez ce fichier dans le répertoire où le courant scala> le pointeur est localisé.

{
   {"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"}
}

Faisons quelques opérations de trame de données sur des données données.

Opérations DataFrame

DataFrame fournit un langage spécifique au domaine pour la manipulation de données structurées. Nous incluons ici quelques exemples de base de traitement de données structurées à l'aide de DataFrames.

Suivez les étapes ci-dessous pour effectuer des opérations DataFrame -

Lire le document JSON

Tout d'abord, nous devons lire le document JSON. Sur cette base, générez un DataFrame nommédfs.

Utilisez la commande suivante pour lire le document JSON nommé employee.jsoncontenant les champs - id, nom et âge. Il crée un DataFrame nommédfs.

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

Output - Les noms de champs sont automatiquement extraits de employee.json.

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

Utiliser la méthode printSchema

Si vous souhaitez voir la structure (schéma) du DataFrame, utilisez la commande suivante.

scala> dfs.printSchema()

Output

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

Afficher les données

Si vous souhaitez afficher les données dans le DataFrame, utilisez la commande suivante.

scala> dfs.show()

Output - Vous pouvez voir les données des employés dans un format tabulaire.

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

Ensuite, nous pouvons y exécuter différentes instructions SQL. Les utilisateurs peuvent migrer les données au format JSON avec un minimum d'effort, quelle que soit l'origine de la source de données.