Cours1 2 Bigdata 1
Cours1 2 Bigdata 1
Cours1 2 Bigdata 1
Le traitement en parallèle
Pierre Nerzic
69 /
YARN est l’un des principaux composants de Apache Hadoop. Il
permet de gérer les ressources du système et de planifier les
tâches. Découvrez sa définition, son utilité, ses fonctionnalités et
ses différents composants.
Pierre Nerzic
70 /
Présentation de Spark
Par contre, j’aurais apprécié que cut permette de changer l’ordre des champs,
ça aurait facilité le classement.
Pierre Nerzic
73 /
Principe du traitement
Voyons comment faire la même chose avec Spark. Une fois que le
fichier arbres.csv est placé sur HDFS, il faut :
1. séparer les champs de ce fichier.
2. extraire le 7e et 6e champs dans cet ordre – ce sont la hauteur
de l’arbre et son année de plantation. On en fait une paire (clé,
valeur). La clé est la hauteur de l’arbre, la valeur est son année
de plantation.
3. éliminer la clé correspondant à la ligne de titre du fichier et les
clés vides (hauteur inconnue).
4. convertir les clés en float
5. classer les paires selon la clé dans l’ordre décroissant.
6. afficher la première des paires. C’est le résultat voulu.
Pierre Nerzic
74 /
Lancement
Pierre Nerzic 76 / 45
Principes
donnees = [ ' v e a u ' , ' v a c h e ' , 'cochon ', 'couvée '] RDD
= sc.parallelize(donnees)
RDD = sc.textFile("hdfs:/share/data.txt")
RDD = sc.sequenceFile("hdfs:/share/data1.seq")
RDD.saveAsSequenceFile("hdfs:/share/
data2.seq") Pierre Nerzic 80 / 45
Actions
Pierre Nerzic
22 /
Transformations
liste = [1,2,3,4]
doubles = map(lambda n: n*2, liste)
liste = sc.parallelize([1,2,3,4])
doubles = liste.map(lambda n:
n*2)
Les deux retournent les résultats, liste ou
Pierre Nerzic 82 / 45
RDD.
Transformations de type map
RDD = sc.parallelize([0,1,2,3])
print RDD.flatMap(lambda n: [n*2, n*2+1]).collect()
Pierre Nerzic 84 / 45
Transformations ensemblistes
RDD = sc.parallelize([1, 2, 3, 4, 6, 5, 4,
3]) print RDD.distinct().collect()
RDD1 =
sc.parallelize([1,2,3,4]) RDD2
= sc.parallelize([6,5,4,3])
print
RDD1.intersection(RDD2).collect
()
Pierre Nerzic 86 / 45
Transformations sur des paires (clé, valeur)
Pierre Nerzic 89 / 45
Présentation
Les RDD ne sont que des données, des n-uplets bruts. Les
DataFrames sont accompagnées d’un schéma.
Pierre Nerzic 90 / 45
BigData - Semaine 4
SparkSQL
nomappli = "essai1"
config =
SparkConf().setAppName(nomappli) sc =
SparkContext(conf=config)
sqlContext = SQLContext(sc)
Méthodes de DataFrame