0% ont trouvé ce document utile (0 vote)
55 vues32 pages

Présentation Scala - Spark SQL

Présentation Scala - Spark SQL

Transféré par

joan.legrand8
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
55 vues32 pages

Présentation Scala - Spark SQL

Présentation Scala - Spark SQL

Transféré par

joan.legrand8
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Sparks SQL

&
DataFrames
Bouhrara Adam
Cassiet 29/02/2024
Clément CY-TECH
Gautier Jordan ING2 GSIA
Legrand Joan Djaouida
Zaouche 1
Table des matières

01 03
Récupération des données et
Introduction Communication avec
Database SQL
- Rappel de ce qu’est
Spark - Différentes manières de
- Introduction à Spark récupérer les données en
SQL DataFrame.
04
02 - Utilisation de JDBC et
SparkSQL pour communiquer
Intégration avec les Database SQL DataFrames
- Integrer SparkSQL a un Présentation générale des
projet Spark DataFrame, de fonctions
- Création de Spark de traitements
sessions couramment utilisées,
- Configuration de avec exemples
connexion à la base de d’utilisation concret 2
01
Introduction
Spark et Spark SQL

3
Spark Spark SQL
● Puissant framework pour traiter les ● Module majeur de Spark
données pour traiter les données structuré
⇒ Pour un grand nombre de comme les non structuré, pour les
données notamment (Big Data) analyser et les manipuler
● Haute performance, rapide et facile ● Accessible simple et puissant
d’utilisation ● Utilise un type de données les
● Opère en mémoire DataFrames
● Flexible ⇒ plusieurs langages ● Permet les utilisateurs d’agir sur les
possibles Scala/Python/Java/R DataFrames à l’aide de requêtes SQL
notamment

Utilisation de Spark :
- Traitement en temps réel Utilisation de Spark SQL :
- Machine learning - Analyse de données
- De manière générale pour traiter un - Manipulation des données
volume massif de données en parallèle - Reporting
- Incontournable de la Big Data
4
02
Intégration

5
Integrer Spark SQL à son
projet Spark

Dependance :
val sparkVersion = "3.5.0"
libraryDependencies += "[Link]" %% "spark-sql" % sparkVersion

Imports
import [Link].{SparkSession, DataFrame, Column, Row, SaveMode}
importants :
import [Link]._
import [Link]._

Démarré sbt
server avec sbt -java-home "C:\Program Files\Java\jdk-11"
jdk 11 :
6
Configuration pour se connecter
aux Bases SQL
libraryDependencies += "[Link]" % "mssql-jdbc" % "9.4.0.jre11"
libraryDependencies += "[Link]" % "ojdbc8" % "[Link]"

7
Initialisation d’une Session Gestion des Exceptions
Spark

import [Link]
import [Link]

8
03
Récupération des
données et
communication avec
database SQL
9
Récupération de données
Différentes manières de récupérer des données depuis la Session Spark (même
avant de vouloir récupérer directement en Database) :

Depuis un
JSON ou
CSV :

Directement dans le code


Scala,
depuis un Seq avec .toDF par
exemple :
10
[Link]()

[Link]()

11
Les modes
Append: Overwrite:
● Ajoute les données de la ● Remplace complètement la table
DataFrame à la table existante avec les données de la
existante DataFrame.
Ignore: ErrorIfExists:
● N'écrit pas les données si la ● Génère une erreur si la table existe
table existe déjà déjà

12
Les options
Les options permettent de configurer et personnaliser les opérations de lecture et
d'écriture de données dans Spark SQL, offrant ainsi un contrôle sur le format, le
schéma, le mode d'écriture, les paramètres de connexion à la source de données,
etc.

Quelques options
utiles :

● format: Spécifie le format. ● queryTimeout: Limite de temps pour


● query: Spécifie une requête SQL à exécuter l'exécution de la requête SQL
directement sur la source de données. ● user: Nom d'utilisateur pour la connexion à
● prepareQuery: Utilisé pour exécuter des la base de données
requêtes paramétrées avec des paramètres ● password: Mot de passe pour la connexion
dynamiques ou pour préparer la requête à la base de données
final. ● mode: Pour spécifier un mode (append,
● dbtable: Spécifie la table dans la base de overwrite…) mais dans un option
données relationnelle à lire.
● truncate: Tronquer la table avant l'écriture
● fetchsize: Taille du lot pour récupérer les
résultats 13
Les options

14
Coupler avec le module [Link]

● Permet de DROP, TRUNCATE…

● Il est possibe de faire la même chose avec les dataFrame. Ecrire une
DataFrame préalablement vidé dans la db pour truncate… Crée de la
complexité.

15
Utilisation de SparkSQL

DataFrame
[Link] [Link]
() ()

16
04
DataFrames

17
Présentation DataFrames

18
Les fonctions natives des DataFrames

Un très grand nombre de fonctions pour traiter, analyser et


manipuler les DataFrames existent :

[Link]
html

19
Utilisation des DataFrames

Manipulation de base Agrégation et Analyse

Jointure sur DataFrame Transformation

20
Manipulation de base

Fonctions natives : Fonctions


développées:
● [Link](SQLquery)
● executeAnyStateme
● [Link](StructType)
nt
● [Link](Columns names)
● truncate
● [Link](Columns names)
● deleteRows
● [Link](Columns names)
● [Link]()
● [Link](dataframe2)
● [Link](numberOfRows)
● [Link]()
21
executeAnyStatement

22
Filter (1)

23
Filter (2)
truncate deleteRows

24
Agrégation et Analyse

Fonction native :
● [Link](cols: List[ColumnOrName])
● [Link](column name, other columns)

Fonctions développées:

● computeAggregate
● groupby

25
groupby

26
computeAggregate

27
Jointure sur DataFrame

Fonctions natives :
● [Link](dataframe1, dataframe2, Column name,
mode)
● [Link](dataframe2, Column name, mode)
(mode par defaut = “inner”)

Fonctions développées:
● Left Join
● Right Join
● Inner Join
● Outer Join

28
Left Join

29
Transformations

Fonctions natives :
● [Link](dataframe1, Column name, Column type, values)
● [Link](dataframe1, Old column name, New
column name)

Fonctions développées:
● Rename Column
● Convert Column
● Add Column

30
Add Column

31
Merci !
Avez vous des
questions ?

Sources :

- Lien vers les


CREDITS: Thisfonctions natives
presentation templateSpark SQL by
was created : Slidesgo,
All :and
[Link]
includes icons by Flaticon, and infographics & images by
Freepik
Sur les DataFrames :
[Link]

- Notre Repo Github avec le Projet :


[Link]
32

Vous aimerez peut-être aussi