Skip to content

hugo-daclon/TP-Big-Data

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polytech Nantes - Mini-projet

Prérequis

L'ensemble de ce TP est à réaliser sur Linux (Debian et Ubuntu par exemple).

Part 0 - Setup

L'objectif de cette étape est de préparer l'environnement pour la réalisation de ce mini-projet.

La première étape consiste à cloner ce projet :

git clone https://github.com/polytech-nantes-puddi/tp.git

Nous allons ensuite procéder à l'installation des prérequis systèmes :

sudo apt update
sudo apt install openjdk-11-jdk
sudo apt install python3 python3-venv
python3 -m venv spark-env

Il est maintenant nécessaire d'activer l'environnement virtuel Python :

source spark-env/bin/activate

Nous procédons ensuite à l'installation des paquets python nécessaire au TP :

pip install --upgrade pip
pip install pyspark

Note : À chaque fois que vous ouvrirez un nouveau terminal, il sera nécessaire d'activer l'environnement virtuel Python avec la commande :

source spark-env/bin/activate

Part 1 - Download files

L'objectif de cette étape est de télécharger les fichiers de données nécessaires à la réalisation de ce mini-projet :

make part1

Cela devrait :

  • Télécharger les ZIP de données dans le répertoire dataset/zip/
  • Extraire les données des fichiers ZIP dans le répertoire dataset/raw/

Pour information, la documentation sur les données est disponible ici : http://data.gdeltproject.org/documentation/GDELT-Data_Format_Codebook.pdf.

Part 2 - Work count example

  1. Exécuter la version WordCount Python :

    python3 part2-wordcount-hamlet-python.py
  2. Exécuter la version WordCount PySpark (version RDD) :

    spark-submit part2-wordcount-hamlet-pyspark.py
  3. Exécuter la version WordCount PySpark (version Dataframe) :

    spark-submit part2-wordcount-hamlet-pyspark-2.py
  4. Comparer les résultats.

  5. Adapter les scripts ci-dessus pour filtrer les mots commençant par la lettre m.

  6. Quelle différence sur votre traitement ?

Quelques documentations utiles :

Part 3 - Processing data

  1. Adapter le script part3.py pour obtenir le top 10 des pays les plus pertinents dans l'actualité sur l'échantillon de données téléchargé.

Nous considérerons le code pays comme l'identifiant à trois lettres représenté par Actor1CountryCode (colonne 7), nous compterons la pertinence d'un événement en fonction de sa colonne NumMentions (colonne 31).

Cela revient à l'exercice WordCount où nous comptons les NumMentions de chaque événement par pays pour déterminer le Top 10.

Rappel concernant pour l'exécution :

spark-submit part3.py

Part 4 - Exposing data

  1. Convertir les données en parquet :

    spark-submit part4-convert-to-parquet.py
  2. Adapter le script part4.py pour réaliser la même analyse que la partie précédente, mais à partir de la vue temporaire.

Rappel concernant pour l'exécution :

spark-submit part4.py

Quelques documentations utiles :

Rendu

L'évaluation se portera sur :

  1. Le script et le résultat (copie d'écran) de la partie 2
  2. Les analyses de la partie 2
  3. Le script et le résultat (copie d'écran) de la partie 3
  4. Le script et le résultat (copie d'écran) de la partie 4
  5. L'analyse technique de la requête print(spark.sql("SELECT count(1) FROM gdelt").explain()) présente dans le script de la partie 4
  6. Une analyse fonctionnelle des données étudiées GDELT sur une problématique identifiée (bonus)

Quelques idées de sujets d'analyse (vous pouvez choisir votre propre sujet) :

  • Comparez les religions, les reportages sont-ils biaisés pour certaines religions (voir le paramètre tone).
  • Quelle influence a eu un pays par rapport à un autre (en termes de comptage pur).
  • Top des organisations (voir le paramètre Actor1KnownGroupCode) mentionnées par mois.

Pour votre analyse, les données référentielles sur notre échantillon de données sont disponibles ici :

Toujours pour votre analyse, voici une page concernant les jointures :

Format du rendu attendu

  • Scripts et code source
  • Compte rendu au format PDF

Sujet pour le plaisir

Récupération des données

make bonus

Exécution du code sample

python3 bonus-sample.py

Questions

  • Quelle est la station avec le plus de mesures en 2022 ?
  • Quelle est la mesure moyenne de Nitrites dans la station L'ERDRE A LA CHAPELLE SUR ERDRE ?
  • Quelle est la station ayant la plus haute température moyenne en 2019 ?
  • Quelle est la commune regroupant le plus de stations ?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 86.6%
  • Makefile 13.4%