TP1
HDFS-MAPREDUCE
Soit le fichier de ventes suivant : (Amazon)
Pour cet exercice, le but est de déterminer le total des ventes par magasin, pour le
fichier de données [Link] dont les champs sont de la forme suivante:
Date temps magasin produit coût paiement
Pour calculer les ventes par magasin, le couple (clef, valeur) à extraire est
(magasin,coût). Pour faire cela, le code de l'extracteur est le suivant ([Link]) :
#!/usr/bin/python
import sys
for line in [Link]:
data = [Link]().split("\t")
if len(data) == 6:
date, time, store, item, cost, payment = data
print "{0}\t{1}".format(store, cost)
Le code du calculateur (Reducer) est le suivant :
#!/usr/bin/python
import sys
salesTotal = 0
oldKey = None
for line in [Link]:
data = [Link]().split("\t")
if len(data) != 2:
continue
thisKey, thisSale = data
if oldKey and oldKey != thisKey:
print "{0}\t{1}".format(oldKey,salesTotal)
salesTotal = 0
oldKey = thisKey
salesTotal += float (thisSale)
if oldKey != None:
print oldKey, "\t", salesTotal
1 Pr. OUBENAALLA
Tester ce Reducer sur le disque local, en utilisant cette instruction.
head -50 ./[Link] | ./[Link] | sort | ./[Link]
Lancer un Job distribué
Pour faire cela, l’instruction à exécuter est :
hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-
2.6.0-mr1-
[Link] -file ./code/[Link] -mapper [Link] -file ./code/[Link] -
reducer
[Link] -input data/[Link] -output outputFolder
Exercices :
A. Ecrire le code python mapReduce dans chacun des cas suivants et tester le:
1. Donnez la liste des ventes par catégorie de produits.
2. Quelle est la valeur des ventes pour la catégorie Toys ?
3. Et pour la catégorie Consumer Electronics ?
4. Donnez le montant de la vente le plus élevé/ le plus bas pour chaque magasin
5. Quelle est cette valeur pour les magasins suivants : Reno ? Toledo ? Chandler
?
6. Quel est le nombre total des ventes et la valeur totale des ventes de tous
magasins confondus ?
7. Quelle est la somme des ventes par jour de la semaine?
8. Quelle est la moyenne des ventes par jour de la semaine?
B. Charger le fichier de pollution sur HDFS et répondre aux requêtes mapReduce
suivantes:
1. Afficher le total des concentrations du CO par ville, par mois
2. Sur quelle ville on a enregistré la concentration maximale de O3.
3. Afficher les mois dont la température est comprise entre 30 et 40 degré
4. Calculer le coefficient de corrélation entre les différents polluant et la
température et interpréter.
Définition : Coefficient de corrélation
Le coefficient de corrélation 𝑟 détermine l’intensité de la corrélation entre deux
variables 𝑥 et 𝑦 et est calculé en utilisant la formule
2 Pr. OUBENAALLA
où 𝑛 est le nombre de valeurs appariées de 𝑥 et 𝑦.
3 Pr. OUBENAALLA