Big Data Spark SQL
Author : Omar Mouqat - IDLD
1. SparkContext et SQLContext
• Initialisation du shell Spark (« spark-shell ») puis du SQLContext.
- Création d'un fichier nommé [Link].
- Lecture de ce fichier dans Spark pour créer un DataFrame.
1. Opérations sur les DataFrames
• Affichage des données et examen du schéma correspondant.
- Sélection d'une colonne spécifique, par exemple, name.
- Filtrage des données pour afficher les employés dont l'âge est supérieur à 23.
- Regroupement des données selon le critère âge pour des analyses
approfondies.
1. Spécification programmée du schéma
• Création d'un fichier texte nommé [Link] et chargement dans Hadoop.
- Définition d'un schéma basé sur trois attributs :
- id
- name
- age
- Conversion en DataFrame et enregistrement comme table temporaire.
- Utilisation de requêtes SQL (clause WHERE) pour filtrer les données.
1. Inférence de schéma avec la réflexion
• Définition d'une case class pour représenter la structure des données.
- Application des transformations sur un RDD pour analyser les données de
manière efficace.
Exemples Pratiques d’Apache Spark SQL
1. Création de DataFrame à partir d'un fichier JSON
1. Importer une session Spark dans Apache Spark, point
d'entrée de toutes les fonctionnalités Spark.
2. Créer une session Spark spark à l'aide de la fonction
builder().
3. Importer la classe Implicits dans la session Spark.
4. Créer un DataFrame df en chargeant les données du fichier
[Link].
5. Afficher les résultats avec la commande [Link]().
### Code Example:
scala<br>val spark =
[Link]().appName("Example").getOrCreate()<br>import
[Link]._<br>val df =
[Link]("[Link]")<br>[Link]()<br>
Traitement de Données Structurées à l'aide d'Ensembles de
Données
Étapes :
1. Importer la classe Implicits dans la session Spark.
2. Afficher le schéma dans un format d'arborescence.
3. Sélectionner uniquement la colonne name.
4. Augmenter les salaires de 1000 pour tous les employés.
5. Filtrer les employés avec un salaire supérieur à 4000.
6. Compter les employés par groupe de salaires.
### Code Example:
scala<br>val updatedDF = [Link]("salary", df("salary") +
1000)<br>[Link]("salary >
4000").show()<br>[Link]("salary").count().show()<br>
Exécution Programmée d'une Requête SQL
Étapes :
1. Enregistrer le DataFrame comme vue temporaire SQL.
2. Définir un DataFrame pour stocker les enregistrements de la table temporaire.
3. Afficher les valeurs filtrées avec une requête SQL.
### Code Example:
scala<br>[Link]("employees")<br>val resultDF =
[Link]("SELECT * FROM employees WHERE age >
30")<br>[Link]()<br>
Création de DataSets
Étapes :
1. Définir une classe de cas Personne avec nom et âge.
2. Créer des encodeurs pour les classes de cas.
3. Importer automatiquement les encodeurs depuis le package [Link]._.
4. Transformer un DataFrame en un Dataset.
5. Afficher les résultats.
### Code Example:
scala<br>case class Personne(name: String, age: Int)<br>import
[Link]._<br>val peopleDS =
[Link][Personne]<br>[Link]()<br>
Conclusion
Ce laboratoire sur Spark SQL a permis de comprendre les bases de la manipulation de
données structurées, notamment :
- Création et utilisation des DataFrames.
- Définition de schémas.
- Exécution de requêtes SQL.
Les exemples pratiques, comme l'utilisation de fichiers JSON, montrent comment Spark
SQL facilite les analyses à grande échelle dans des environnements distribués, rendant
les processus analytiques plus rapides et efficaces.