Bonjour tous le monde,
auriez-vous des liens vers des TP avec correction sur des projets big data (hadoop, ELK, Spark ... )
mon problème c'est que dans ma formation et dans les tutoriels en lignes c'est des mini-projet.
Merci d'avance
Version imprimable
Bonjour tous le monde,
auriez-vous des liens vers des TP avec correction sur des projets big data (hadoop, ELK, Spark ... )
mon problème c'est que dans ma formation et dans les tutoriels en lignes c'est des mini-projet.
Merci d'avance
Bonjour,
Pour faire suite à ce post, je m'intéresse aussi au Big Data et à Spark en particulier.
Existe-t-il des tps voir des projets à faire dans ce domaine pour progresser en Spark?
Merci d'avance.
Alex
Bonjour,
A défaut de projet, j'essaye de me former avec des bouts de code pour spark que j'essaye d'implémenter. J'avoue avoir des difficultés sur certains morceaux de codes.
Par exemple :
code python/spark pour calculer des chiffres au carré :
Code:
1
2
3
4 nums = sc.parallelize([1, 2, 3, 4]) squared = nums.map(lambda x: x * x).collect() for num in squared: print "%i " % (num)
code python/spark pour couper des lignes en mots :
Code:
1
2
3 lines = sc.parallelize(["hello world", "hi"]) words = lines.flatMap(lambda line: line.split(" ")) words.first() # returns "hello"
code python/spark pour des agrégations :
Code:
1
2
3
4 sumCount = nums.aggregate((0, 0), (lambda x, y: (x[0] + y, x[1] + 1), (lambda x, y: (x[0] + y[0], x[1] + y[1])))) return sumCount[0] / float(sumCount[1])
Même si j'ai compris l'idée de ces codes, je n'ai pas tout compris dans le détail.
Pouvez vous m'aider svp?
Merci d'avance.
Alex
Bonjour,
A mon avis, vouloir se former avec des bouts de code, c'est bien. Mais pour bien comprendre, maux vaut suivre une formation si on le peut, ou bien s'acheter au moins un livre sur Spark.
Avec un livre, tu pourras acquérir les concepts et les fondamentaux de base et notamment :
- comment charger des données dans un Dataset Spark, avec les notions de RDD (Resilient Distributed Dataset) et de Dataframe
- comment traiter ces données via l'API Spark, en appelant des fonctions comme map ou flatMap
- ce qu'est une transformation et ce qu'est une action, avec la notion de DAG (Directed Acyclic Graph)
- comment fonctionne Spark et quelles sont les différences entre une transformation étroite et une transformation large
Ça, c'est la base. Après tu trouveras les sujets classiques comme faire du Streaming, du SQL et du Machine Learning avec Spark.
Avec un livre, tu aurais compris que :
- parallelize est une des 2 méthodes bien connues pour charger une collection de données dans Spark, et en faire un RDD pour distribuer les données sur les différents noeuds du cluster. Le livre t'aurait dit que l'autre méthode pour charger des données est textFile pour lire un fichier texte et le charger dans un RDD
- que map et flatMap sont des transformations, la différence étant que map ne retourne qu'un élément en sortie pour un élément en entrée, alors que flatMap retourne N éléments en sortie pour 1 élément en entrée.
En clair,sur le calcul du carré, on appelle map car pour l'entrée 2, on récupère 4 en sortie, alors que dans le second exemple, on appelle flatMap car pour la chaîne "hello world" en entrée, on récupère par la fonction Split 2 éléments en sortie qui sont "hello" et "world"
- que collect() permet non seulement de collecter le résultat mais surtout que collect est une action.
En fait, tant que tu envoies à Spark des commandes de type transformation, il ne se passe rien. Elles ne sont pas exécutées sur le moment, mais elles (les transformations) seront évaluées et exécutées en même temps lorsque Spark recevra une action, telle que collect ou first
On appelle cela la Lazy Evaluation (l'évaluation paresseuse) car cela permet à Spark d'évaluer toutes les transformations d'un seul coup, et d'essayer de les optimiser.
Voilà, avec un livre, tu aurais à mon avis compris tout cela.
Vous pouvez voir ce lien je crois que c'est intéressant.
http://cours.tokidev.fr/bigdata/