Vous êtes sur la page 1sur 19

Université de Sousse

I.S.I.T.Com.

Apache Spark SQL (sous Databricks)


TP
Khaled Jouini
L’objectif de ce TP est de se familiariser avec le moteur d’exécution unifié et distribué

i
Apache Spark et Apache Spark SQL. Apache Spark SQL facilite le traitement, l’analyse et

in
l’intégration de données structurées et semi-structurées à grande échelle. Il permet notamment
de tirer parti du langage SQL pour interroger et analyser des données, tout en bénéficiant des
performances et de l’évolutivité d’Apache Spark.

u
Á la fin de ce TP, vous devez être en mesure, d’ingérer des données dans Spark et explorer
les données et les transformer (Data Cleaning, Data Wrangling) avec Spark SQL. Le TP présente
IT - Jo
également une session illustrative sur l’ingestion des données à partir de la base DaaS MongoDB
Atlas.

Sommaire

m
led

1 Chargement, profilage, interrogation et visualisation des données 2


1.1 Création d’un Cluster et chargement de données locales au format JSON . . . . . 2
Co
1.2 Exploration et profilage des données . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Interrogation des dataframes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
ha

2 Connexion à une base cloud Daas 6


2.1 Création et configuration d’une base cloud MongoDB ATLAS . . . . . . . . . . . 6
2.2 Import de données dans le cluster ATLAS . . . . . . . . . . . . . . . . . . . . . . 8
K

2.3 Connexion au cluster ATLAS à partir de DataBricks Spark . . . . . . . . . . . . 10


2.4 Exploration et tranformation des données . . . . . . . . . . . . . . . . . . . . . . 11
IS

2.5 Sauvegarde des données d’un dataframe dans la base Cloud . . . . . . . . . . . . 11

3 Transformation des données et Machine Learning élémentaire 12


3.1 Transformation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Visualisation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Régression linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Un mot sur Power BI 16


4.1 Connexion à la base Cloud ATLAS . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5 Travail à faire chez soi 19

Khaled Jouini 1/19


TP Spark SQL

Exercices
1 Chargement, profilage, interrogation et visualisation des données
Sous databricks, vous pouvez vous connecter à des sources de données externes (fichiers hdfs,
tables hive, Mysql, DaaS, etc.), soit créer vos propres tables, ou bien uploader des fichiers.
Databricks dispose d’un (niveau d’abstraction de) système de fichiers intégré dans lequel il est
possible de mettre des fichiers de données, des images et même des bibliothèques externes.
Une fois les données chargées sous Saprk, il est possible de les manipuler soit avec l’API
DataFrame ou avec SQL. Dans la suite nous allons explorer les principales possibilités de charge-
ment, d’exploration et de transformation de données offertes par Spark à travers 3 jeux de

i
données.

in
1.1 Création d’un Cluster et chargement de données locales au format JSON

u
Databricks offre un environnement cloud prêt à l’emploi pour la création de notebooks connectés
à un cluster Spark. Un notebook est une interface web contenant des commandes exécutables

1.
IT - Jo
(interprétées), des graphiques et des commentaires (markdown).

Sous Databricks, créez un cluster Spark M yCluster pour pouvoir exécuter vos Notebooks.
Pour créer un Cluster, faites-le à partir de l’onglet ”Compute”

m
led

2. Téléchargez les fichiers ci-après.


https://drive.google.com/file/d/1xOTX6X8y3ZvY1Ml80RggZ9ucBcujN4Cm/view?usp=
sharing
Co
ha

https://drive.google.com/file/d/1qQMz-q4nsGHCzEmedkF2517rOhhSlhcm/view?usp=
sharing
K

3. Rendez vous sous l’onglet ”Data” et uploadez les données que vous venez de
télécharger sous DBFS comme montré dans la figure ci-après.
IS

Khaled Jouini 2/19


TP Spark SQL

i
u in
IT - Jo
m
led
Co
Retenez le chemin vers vos fichiers, affichés en bas de la forme.
ha

4. Rendez vous sous l’onglet ”Workspace” pour créer un nouveau notebook [NB movies].

5. Les DataFrames sont des structures de données bidimensionnelles similaires à des tables
K

de base de données ou à des feuilles de calcul. Le DataFrame API offre un moyen puissant de
traiter et d’analyser ces données de manière distribuée.
Utilisez la commande ci-après pour créer un dataframe à partir des fichiers json. Dans la
IS

plupart des cas, il vaut mieux laisser à Spark le soin d’inférer le schéma (vous pouvez modifier le
schéma inféré avec la commande withColumn()). Les fichiers json à notre disposition n’ont pas
tout à fait le même format (éditez les pour le constater). Dans le premier chaque objet occupe
une et une seule ligne. Dans le deuxième chaque objet peut occupé plusieurs lignes. Nous avons
de ce fait utilisé deux commandes différentes.

dfArtists = spark.read.load("/FileStore/tables/artistsSpark.json", format="json")


dfArtists.printSchema()
display(dfArtists)

dfMovies = spark.read.option("multiline","true").json("/FileStore/tables/moviesAvecRef.json")
dfMovies.printSchema()
display(dfMovies)

Khaled Jouini 3/19


TP Spark SQL

1.2 Exploration et profilage des données


6. L’outil ”Data Profile” est utile pour les tâches d’exploration de données et d’analyse ex-
ploratoire. Il permet aux utilisateurs d’obtenir rapidement des informations clés sur leurs
données sans avoir à écrire de code spécifique. Cela facilite la compréhension des données
et aide à prendre des décisions éclairées lors de la préparation et de l’analyse de données dans
Databricks. Utilisez cet outil pour afficher une description des données de vos dataframes.

i
in
7. L’outil ”Visualization” permet de créer, personnaliser et afficher des visualisations interac-

u
tives de données directement dans leurs notebooks Databricks. Utilisez cet outil pour créer des
graphiques rapides à partir de vos données.
IT - Jo
m
led
Co
ha
K
IS

Khaled Jouini 4/19


TP Spark SQL

i
in
1.3 Interrogation des dataframes

u
8. Le DataFrame API est disponible dans plusieurs langages de programmation, dont Scala,
Python, R et SQL. Testez les 2 commandes ci-après écrites en Python et expliquez les résultats
IT - Jo
dfMovies.filter(dfMovies[’genre’]==’drama’).show()

m
dfMovies.filter(dfMovies[’actors. id’]==’artist:15’).show()
led
Co
9. Utilisez la commande explode pour ”aplatir” la colonne Actors et ré-essayez d’exécuter la
requête
ha

from pyspark.sql.functions import explode


dfMoviesEx = dfMovies.withColumn("actors",explode(dfMovies.actors))
dfMoviesEx.filter(dfMoviesEx[’actors. id’]==’artist:37’).show()
K
IS

10. L’API DataFrame offre la possibilité de lier des sources de données à travers l’opération de
jointure. Utilisez cette opération à bon escient du fait de son coût d’exécution important dans
les environnements hautement distribués comme l’est Apache Spark. Testez la requête ci-après
écrite en python pour afficher les titres des films du genre drama et les noms de leurs réalisateurs.

jointure = dfMovies.join(dfArtists,dfMovies[’director. id’]==dfArtists[’ id’])


.where(dfMovies[’genre’]=="drama")
jointure.show()

11. Il est possible d’interroger un dataframe avec le langage SQL. La commande createOrReplaceTempView
permet de créer une vue temporaire à partir des données contenues dans un DataFrame. Une
vue temporaire est un objet qu’on peut utiliser pour exécuter des requêtes SQL ou des opérations
SQL-like sur les données du DataFrame.

artistsDF.createOrReplaceTempView(’artists’)
moviesDF.createOrReplaceTempView(’movies’)

Khaled Jouini 5/19


TP Spark SQL

12. Vous pouvez désormais exécuter des requêtes SQL sur les vues ”artists” et ”movies” et
même faire des jointures en langage SQL.
%sql
select birth date, count(*) as nb artists from artists group by (birth date)
order by nb artists desc
%sql
select movies.*, artists.* from movies, artists where movies.director. id = artists. id

13. Les résultats de l’exécution d’une requête SQL sont affectés au Dataframe par défaut
sqldf.

i
14. Exécuter les requêtes permettant de :

in
1. Trouver les noms des réalisateurs qui ont réalisé des films du genre ’drama’

2. Trouver pour chaque acteur, le nombre de films dans lesquels il a joué.

u
3. Trouver le nombre de films dans lesquels a joué ”Clint Eastwood” et parus avant l’année
2000.
IT - Jo
4. Compter le nombre d’acteurs dirigés par chaque réalisateur.

m
15. Créez un dashboard avec les différents graphiques
led

2 Connexion à une base cloud Daas


Co
Dans cette partie du TP, nous allons créer une base de données Daas (Data as a Service), puis
nous accéder aux données de cette base depuis databricks pour explorer, transformer et visualiser
ha

ses données avec Spark SQL.


MongoDB Atlas est une plateforme de base de données cloud entièrement offrant une
solution robuste et évolutive pour le stockage, la gestion et l’accès aux données. Elle permet
la création et le déploiement facile de clusters de bases de données MongoDB dans le cloud.
K

ATLATS dispose des fonctionnalitésde sauvegarde automatisée, de sécurité avancée et de scal-


abilité.
IS

Les étapes que nous allons : (i) créer un cluster MongoDB ATLAS; (ii) importer de
données dans ATLAS avec mongoimport; (iii) configurer le driver de MongoDB dans le cluster
Spark; et (iv) configurer de l’accès à la base depuis un notebook.

2.1 Création et configuration d’une base cloud MongoDB ATLAS


16. Rendez vous sur https://www.mongodb.com/atlas/database, créez un compte puis loggez
vous. Comme vous pouvez le constater, votre cluster ATLAS est répliqué.

Khaled Jouini 6/19


TP Spark SQL

i
u in
17. Créez un utilisateur et affectez lui un mot de passe sous le menu [Security/Database Access]
comme illustré ci-après.

IT - Jo
m
led
Co
ha
K
IS

18. Sous le menu [Security/Network Access] . Autorisez l’accès à votre cluster MongoDB à
partir de votre adresse IP actuelle, ou temporairement de n’importe quelle adresse IP pour
simplifier.

Khaled Jouini 7/19


TP Spark SQL

i
in
19. Sous le menu [Security/Network Access] . Autorisez l’accès à votre cluster MongoDB à
partir de votre adresse IP actuelle, ou temporairement de n’importe quelle adresse IP pour
simplifier.

u
IT - Jo
m
led
Co
ha

20. Cliquez sur le bouton [Connect] et copiez la chaı̂ne de connexion à votre cluster.
K
IS

2.2 Import de données dans le cluster ATLAS


Pour charger les données dans le cluster ATLAS, nous allons utiliser l’utilitaire mongoimport.

21. Téléchargez l’outil mongoimport sous le lien https://www.mongodb.com/try/download/


database-tools.

Khaled Jouini 8/19


TP Spark SQL

22. Décompressez et installez mongoimport. Ajoutez mongoimport à la vraiable d’environnement


path.

23. Téléchargez les fichiers artists https://www.dropbox.com/s/wxr2ek9nn8ru8kp/artists.


json?dl=0 et moviesAvecRef https://www.dropbox.com/s/edasp00vrbailwh/moviesAvecRef.
json?dl=0
Chargez les données dans la base CLoud MongoDB dbMovies avec les commandes ci-après
(utilisez votre propre chaı̂ne de connexion). La commande importe les documents contenus dans
le fichier moviesAvecRef.json dans la collection moviesRef et ceux du fichier artists.json dans
la collection artists de la base dbM ovies.
Notez que vous n’avez pas besoin de créer ni la collection ni la base avant d’exécuter la

i
commande. L’argument jsonArray de la commande indique à l’utilitaire d’import qu’il s’agit

in
d’un tableau d’objets à créer individuellement, et non d’un unique document JSON.

mongoimport --uri mongodb+srv://khaled:khaledcluster0.rnw57vy.mongodb.net/dbMovies


--collection moviesRef --file c:\moviesAvecRef.json --jsonArray

u
mongoimport --uri mongodb+srv://khaled:khaledcluster0.rnw57vy.mongodb.net/dbMovies
--collection artists --file c:\artists.json --jsonArray

IT - Jo
24. Rendez vous sous l’interface graphique ATLAS et vérifiez que la base dbMovies a été créée
et que les données ont bien été chargées.

m
led
Co
ha
K

25. Sous le menu [Aggregation] créer une requête permettant faire la jointure entre artists et
moviesRef et enregistrez le résultat dans une nouvelle collection movies.
IS

Khaled Jouini 9/19


TP Spark SQL

26. Vous pouvez, si vous le souhaitez, explorer vos données à travers les charts offerts par
ATLAS (bouton [VISUALIZE YOUR DATA]) comme montré ci-après.

i
u in
IT - Jo
m
27. Atlas offre également la possibilité de créer des tableaux de bord plus élaborés sous le
led
menu [charts]Co
ha

28. Sous ATLAS, vous pouvez si vous le souhaitez créer un web service REST permettant
l’accès à votre base Cloud. Si vous le souhaitez le faire, rendez vous sous le menu [Data API]
K
IS

2.3 Connexion au cluster ATLAS à partir de DataBricks Spark


Dans cette partie du TP, nous allons connecter notre cluster databricks à notre cluster AT-
LAS, l’objectif étant de pouvoir récupérer les données, les explorer, les transformer, les lier
éventuellement à des données provenant d’autres sources, etc. avec les outils Big Data de Spark
SQL et Spark MLlib.
La suite de cette section est donc à exécuter sous Databricks.

Khaled Jouini 10/19


TP Spark SQL

29. Pour pouvoir nous connecter à une base MongoDB à partir de Databricks, il est nécessaire
d’installer le driver de MongoDB dans notre Cluster.
Accédez à la page de détails du cluster et sélectionnez l’onglet [Libraries]. Cliquez sur le
bouton [Install New]. Sélectionnez Maven comme source de bibliothèque. Utilisez la fonction de
recherche de packages pour trouver le connecteur ’mongo-spark’. Cela devrait pointer vers org.
mongodb.spark:mongo-spark-connector_2.12:3.0.1 ou une version plus récente. Cliquez
ensuite sur Installer.

i
u in
IT - Jo
30. Créez un nouveau Notebook [NB ATLAS] et attachez-le à votre Cluster. Avant de vous
connecter à votre base Cloud, récupérez la chaı̂ne de connexion (pyhton) depuis l’interface
d’ATLAS.
Exécutez ensuite les commandes ci-après pour vous accéder à votre base CLoud depuis

m
votre notebook.
led
Co
ha
K
IS

2.4 Exploration et tranformation des données


31. Utilisez les requêtes SQL pour créer un dataframe faisant la jointure entre artists et movies-
Ref, faites le profilage et l’exploration des données, générez des graphiques, etc. comme vu
précédemment.

2.5 Sauvegarde des données d’un dataframe dans la base Cloud


32. Vous pouvez, si vous le souhaitez, sauvegarder le contenu d’un dataframe dans une collec-
tion MongoDB comme illustré dans l’exemple ci-après.

Khaled Jouini 11/19


TP Spark SQL

i
u in
3 Transformation des données et Machine Learning élémentaire
3.1 IT - Jo
Transformation des données
Dans cette partie du TP nous allons importer des données sur la COVID-19 et les transformer
pour pouvoir créer un modèle prédictif de l’évolution du nombre de nouveau cas en fonction

m
des cas rapportés précédemment. Les données sont au format csv et fournies par https://
led
ourworldindata.org/.
Le jeu de données contient plusieurs valeurs NULL qui doivent être supprimées avant de
Co
procéder à l’apprentissage du modèle. Le nombre de cas précédemment rapportés doit également
être ajoutés à chaque ligne du jeu de données. Ces transformations sont nécessaires sachant que
l’objectif est de prédire le nombre de nouveaux cas en fonctions des cas rapportés il y a 1 semaine,
ha

2 semaines et 3 semaines.

33. Téléchargez le fichier covid.csv sous le lien


K

https://drive.google.com/file/d/1Kt8QHpZ-gL4tWpZn1PhJ7mYBtmi7RslY/view?usp=sharing.
Chargez les données dans Databricks comme décrit précédemment.
IS

34. Créez un nouveau notebook [NB covid]. Chargez les données dans un Dataframe dfCovid
comme suit.

file location = "/FileStore/tables/covidData.csv"


dfCovid = spark.read.option("header",True).csv(file location)
display(dfCovid)

35. Utilisez l’outil de profilage des données pour repérer les colonnes contenant des valeurs
nulles.

36. Comme vous pouvez le constater, la colonne date du dataframe est au format String. Il est
primordial de transformer cette colonne au format date pour pouvoir faire des jointures sur les
dates ultérieurement. Pour celà nous allons définir une fonction func utilisant une expression
lambda pour transformer cette colonne au format date de python.

Khaled Jouini 12/19


TP Spark SQL

from pyspark.sql.types import *


from pyspark.sql.functions import *
from datetime import datetime

#strptime : transforme une cha^ıne de caractère en une date


func = udf (lambda x: datetime.strptime(x, ’%d/%m/%Y’), DateType())
dfCovid = dfCovid.withColumn(’date’, func(col(’date’)))

dfCovid = dfCovid.withColumn(’new cases smoothed per million’,


col(’new cases smoothed per million’).cast(’float’))

dispaly(dfCovid)

i
in
37. L’étape suivante consiste à supprimer les valeurs NULL avec la fonction dropna, notam-
ment de la colonne contenant la variable à prédire (new cases smoothed per million).

u
dfCovid = dfCovid.dropna(subset="iso code")
dfCovid = dfCovid.dropna(subset="new cases smoothed per million")

IT - Jo
38. Nous allons maintenant trier les données,renommer la variable cible et faire une projection
pour ne garder que la date, le pays et le nombre de cas quotidiens par million d’habitants. Le
moyen le plus simple est de le faire avec SQL.

m
dfCovid.createOrReplaceTempView("covid")
led
dfCases = spark.sql("select date, iso code, new cases smoothed per million as new cases
from covid order by date, iso code")
Co
dfCases.createOrReplaceTempView("cases")
display(dfCases)
ha

3.2 Visualisation des données


39. Trouvez le nombre total de cas quotidiens par million d’habitants et créez un graphique
représentant le résultat comme montré ci-après.
K
IS

Khaled Jouini 13/19


TP Spark SQL

40. Avec le code ci-après nous créons deux vues sur le même dataframe pour récupérer le
nombre de cas à j-7 et à j-15.

dfCases.createOrReplaceTempView("j7")
dfCases.createOrReplaceTempView("j15")

df = spark.sql("select cases.date, cases.iso code, j7.new cases as j7 cases,


j15.new cases as j15 cases, cases.new cases from cases, j7, j15
where cases.iso code = j7.iso code AND cases.iso code = j15.iso code
AND datediff(cases.date, j7.date)=7

i
AND datediff(cases.date, j15.date)=15
order by cases.date")

in
display(df)

3.3 Régression linéaire

u
41. Comme nous disposons de données catégorielles dans plusieurs de nos colonnes, il est

IT - Jo
nécessaire de les convertir en une représentation numérique. Pour ce faire, nous utiliserons un
StringIndexer, qui associe chaque colonne de chaı̂nes de caractères à un vecteur de nombres
de longueur égale au nombre total de chaı̂nes uniques dans cette colonne.

m
from pyspark.ml.feature import StringIndexer
led
stringIndexer = StringIndexer(inputCol="iso code",outputCol="countryIDX")
df = stringIndexer.fit(df).transform(df)
Co
42. La plupart des algorithmes de Spark MLlib acceptent une seule colonne en entrée. Spark
MLlib fournit le transformateur VectorAssembler permettant de créer un seul vecteur con-
ha

tenant toutes les variables explicatives. Le bloc de code suivant illustre comment utiliser
VectorAssembler.

from pyspark.ml.feature import VectorAssembler


K

feature columns = [’countryIDX’, ’j7 cases’, ’j15 cases’]


assembler = VectorAssembler(inputCols = feature columns, outputCol = "features")
df = assembler.transform(df)
IS

43. Nous allons maintenant diviser le jeu de données en un jeu d’apprentissage et un jeu de
test. Pour cet exemple précis, nous n’allons pas utiliser la fonction randomSplit fournie par
Spark car nous devons préserver l’ordre des données.

train percentage = 0.7


total count = df.count()
train count = int(total count * train percentage)
train data = df.limit(train count)
test data = df.subtract(train data)

44. Interprétez ligne par ligne le code ci-après

Khaled Jouini 14/19


TP Spark SQL

from pyspark.ml.regression import LinearRegression


from pyspark.ml.evaluation import RegressionEvaluator

lr = LinearRegression(featuresCol="features", labelCol="new cases")


lr model = lr.fit(train data)

predictions = lr model.transform(test data)


evaluator = RegressionEvaluator(labelCol="new cases",
predictionCol="prediction", metricName="rmse")
rmse = evaluator.evaluate(predictions)
print(f"Root Mean Squared Error (RMSE): {rmse}")

45. En plus des graphiques fournis par défaut par Databricks, il est possible de créer ses pro-

i
pres graphiques avec des bibliothèques comme matplotlib

in
import matplotlib.pyplot as plt
import numpy as np

u
predicted values = np.array(predictions.select("prediction").rdd.map(lambda x: x[0]).collect())
true values = np.array(predictions.select("new cases").rdd.map(lambda x: x[0]).collect())
IT - Jo
residuals = true values - predicted values

indices = np.array(range(len(predictions.collect())))

m
led
plt.figure(figsize=(10, 6))
plt.scatter(indices, residuals, marker=’o’, color=’blue’, alpha=0.7)
plt.axhline(y=0, color=’red’, linestyle=’--’)
Co
plt.xlabel("Row Index")
plt.ylabel("Residuals")
ha

plt.title("Residual Plot")
plt.grid(True)
plt.show()
K
IS

Khaled Jouini 15/19


TP Spark SQL

46. Essayez d’autres algorithmes de régression que la régression linéaire (e.g. DecisionTreeRegressor,
RandomForestRegressor, etc.) et comparez les résultats.

4 Un mot sur Power BI


Les outils tels que Tableau, Power BI et Databricks Spark SQL, couramment utilisés en Business
Intelligence, permettent d’exécuter des pipelines ETL (Extract, Load, Transform) comprenant la
collecte de données à partir de sources diverses, l’exploration des données et leur transformation.
Ces outils offrent également la possibilité d’analyser les données et de générer des graphiques
ainsi que des tableaux de bord pour faciliter la prise de décision.
La première différence notable entre Power BI et Databricks Spark SQL réside dans le

i
fait que Power BI est davantage destiné au traitement des données au niveau de l’entreprise,

in
tandis que Databricks est capable de gérer de gros volumes de données (Big Data). Spark SQL
est généralement plus puissant pour l’ingestion et la transformation des données, tandis que
Power BI permet une génération plus simple de graphiques, de tableaux de bord et de rapports.

u
Databricks Spark permet également l’intégration de modèle de machine learning avancé à travers
Spark MLlib et également l’itégration de flux de données avec Spark Structured Streaming.

IT - Jo
Cette section est session illustrative de Power BI. La suite suppose que vous avez déjà
installé Power BI Desktop.

4.1 Connexion à la base Cloud ATLAS

m
47. La connexion à notre base Cloud ATLAS depuis Power BI requière de procéder aux étapes
led
ci-après.
Co
1. Dans l’interface d’ATLAS, sous le menu Database et boutton [Connect], choisissez l’option
ATLAS SQL
ha
K

2. Dans l’interface suivante ardez l’option ”Quick Start” et copier l’url de connexion à votre
IS

base.

3. Téléchargez et installez sur votre machine la dernière version du driver ODBC

4. Le traitement des champs non-scalaires peut être compliqué sous Power BI. Poir cette rai-
son, nous allons créer une nouvelle collection moviesRef2 dans laquelle nous ”applatissons”
le document imbriqué director avec la requête Aggregation Pipeline ci-après.

Khaled Jouini 16/19


TP Spark SQL

[
{$project: { id: 1, title: 1, year: 1, genre: 1, summary: 1, country: 1,
actors: 1, "directorId": "$director. id", },}
{$out: "moviesRef2",}
]
Expliquez ce code.

Une fois ses étapes terminées, lancez Power BI Desktop et suivez lees étapes ci-après pour vous
connecter à votre base Cloud.

1. Cliquez sur [Obtenir de données], puis dans la barre de recherche tapez Atlas. Sélectionnez
le connecteur qui s’affiche

i
u in
IT - Jo
2. fournissez l’url que vous avez récupérée de l’interface d’ATLAS, le nom de votre base et le
login/mot de passe de votre utilisateur ATLAS.

m
led
Co
ha

A la fin de ces étapes, si tout se passe bien, Power BI desktop aura chargé les données des
collections de votre base Cloud. Vous pouvez explorer les données, changez les types des données
K

qui ne sont pas au bon format, etc.


IS

48. Dans Power BI, créez différents graphiques à partir de la table moviesRef2, comme nombre
de films par genre, nombre de films par pays, etc. Vous pouvez vérifier que les visuels sont
dynamiques et interliés.

Khaled Jouini 17/19


TP Spark SQL

i
u in
IT - Jo
49. Pour pouvoir faire des visuels impliquant des données de deux tables diférentes, il est

m
nécessaire de lier ces tables (e.g. nombre de films par réalisateur). Sur le volet gauche de
led

l’interface, cliquez sur pour indiquer que moviesRef2 fait référence à artists. Vous pouvez
Co
constater par vous-même que cette jointure n’est pas possible entre moviesRef et artists
ha
K
IS

50. Vous pouvez maintenant faire des graphiuqes impliquant des données des deux tables.

Khaled Jouini 18/19


TP Spark SQL

i
u in
IT - Jo
51. Pour partager et publier votre rapport cliquez sur Publier . Ceci ouvre votre rapport
dans Power Bi Cloud, où vous pouvez accéder à des fonctionnalités supplémentaires et partager
votre rapport avec d’autres personnes.

m
5 Travail à faire chez soi
led

52. Utilisez le jeu de données sur la COVID-19 pour créer des rapports avec les chiffres et les
Co
graphiques clés. Transofrmez les données pour supprimer les valeurs nulle et ne garder que les
colonnes pertienentes et les lignes correspondant à la Tunisie, l’Italie, la France et l’Allemagne.
ha

Publiez votre rapport sur Power BI CLoud et ajoutez tout ce qui vous semble pertinent.

N.B. Si vous rencontrez des difficultés pour convertir le texte en nombre, rendez vous à la
fenêtre de transformation des données. Puis sous le menu Fichier/Options et paramètres/Options/paramètres
K

Régionaux, choississez Anglais. Le plus souvent l’erreur est due au fait que par défaut le
séparateur de décimal est ”.” et non ”,”.
IS

Khaled Jouini 19/19

Vous aimerez peut-être aussi