Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

L'essentiel d'Apache Spark

Appliquer des transformations au RDD

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Appliquez une transformation distincte au RDD pour créer un second RDD. Apprenez également à compter le nombre d'éléments de ce RDD.
06:11

Transcription

Me voici donc avec mon RDD affecté dans une valeur et qu'est-ce que je peux faire avec ? Bien entendu, on va aller regarder dans la documentation de Spark, la documentation que vous trouvez assez facilement sur spark.avachi.org/docs comme vous le voyez ici, qui va vous lister la documentation pour toutes les versions. Si vous travaillez avez une version spécifique bien entendu vous prenez cette version, sinon vous pouvez toujours aller sur « latest » qui correspond à la dernière version stable, en ce moment 2.1.0. Dans ces documentations ici, j'ai celle des API, je vais prendre Scala, et je me retrouve avec ma liste de Name Spaces et de classes à disposition donc, qu'est-ce que j'ai, org.apache.spark.rdd donc ça c'est le name space, et la classe s'appelle RDD. Ok donc je vais venir ici chercher un peu, on va descendre assez vite, org.apache.spark.m, vous voyez qu'il y a beaucoup de classes selon les fonctionnalités de Spark, SQL donc R est avant S, je crois, et ici org.apache.spark.RDD, mon name space, mon espace de nom, est RDD, que voilà, me voici dans la documentation. On me dit c'est un resilient distributed dataset, on est content, et voici les membres qui sont des méthodes, on le voit, et on se souvient, il y a deux types d'opérations donc il va y avoir deux types de méthodes et il est important de les distinguer, on va avoir des méthodes qui comme celle-ci retournent un RDD, donc il s'agit d'une transformation, vous vous souvenez, la transformation, ça va être appel d'une méthode sur le RDD pour le stocker dans une autre variable, dans une autre instance de RDD si vous voulez, un RDD transformé, et on va avoir des méthodes de type action par exemple collect, vous voyez que ça retourne un tableau donc ça ne retourne pas un RDD, c'est une action, ou bien simplement count, ça retourne un entier, c'est une action. Il est important de distinguer les actions des transformations parce que, vous vous souvenez, il y a cette opération d'abord de traitement paresseux, « lazy », et puis, il y a la réutilisation du RDD. La façon dont on va travailler pour vraiment optimiser les performances est la suivante : je vais par exemple utiliser une transformation. On va dire « val tr2 = tr » et on va faire quelque chose comme « distinct() » Distinct, donc si je reviens à la documentation, retourne un RDD, c'est donc une transformation, et il contient les éléments distincts du RDD source. Bon, c'est logique, donc si je fais un distinct, je vais avoir tr2 qui va contenir les valeurs « distinct. » Et ensuite, je vais faire tr2.count(), à ce moment-là, count(), bon, inutile de vous le remontrer, vous avez compris, retourne un « Long », c'est une action. Qu'est-ce qui est important à comprendre ? C'est que ici pour l'instant rien n'a été fait. Parce que c'est une transformation. J'aurais pu faire une autre transformation pour mettre dans tr3, rien n'aurait été fait, parce qu'on est dans un traitement paresseux. Pour l'instant, je ne demande rien, je produis des RDD, donc je n'ai pas de traitement à faire sur ces RDDs. Spark ne fait rien, il garde en mémoire tout l'historique des transformations, et c'est au moment où je veux vraiment un résultat, c'est-à-dire une action qui produit un résultat, comme mon count, que toute la chaîne va être générée. La transformation ne se produire physiquement que lorsque je demande une action à la fin. Donc, c'est très bien parce que, admettons que j'ai fait, par exemple, trois transformations, elles ne vont pas charger le traitement de Spark, c'est seulement au moment où je veux ce résultat sous forme d'action que Spark va prendre les trois transformations, si j'ai fait trois transformations par exemple, et les envoyer, les traiter, de façon à ne pas faire des allers et retours inutiles pour générer des transformations. OK, donc je fais mon count, à ce moment-là, tr2 est généré, et le count est retourné. Je vais juste faire un count de tr pour voir la différence. J'ai effectivement ici moins que là, car ici j'ai toutes mes lignes de texte, et ici, j'ai le contenu distinct de ces lignes de texte, ça veut dire que j'ai récupéré un RDD qui contient toutes les lignes, tous les retours charriot font une séparation donc toutes les lignes de mes textes, et puis ensuite, je regarde les lignes qui sont identiques et je les enlève, bien entendu. Enfin, j'en garde qu'une occurrence. Donc, si je refais ça, eh bien, mon action va regénérer cette transformation, cette transformation va être effectuée une deuxième fois. Parce que je n'ai pas persisté ma transformation. Ce qu'il faut que je fasse maintenant c'est un tr2.cache(), ou tr2.persist(). C'est à peu près un synonyme, persist() a la possibilité de prendre en paramètres un type de persistance, par exemple je peux dire je le « persist » expressément sur le disque, mais je fais un persist sans paramètres ça va être le type de persistance par défaut qui est en mémoire, si je fais un cache, ça va être le type de persistance par défaut en mémoire et je n'ai pas de possibilité de persister sur le disque. Donc, je vais faire un cache. Ce qui va générer la transformation, et me la garder en mémoire, ce qui fais que maintenant, si je fais des counts, il ne va plus y avoir recréation de mes RDD transformés. Ça c'est très important de le comprendre pour optimiser le traitement de vos applications.

L'essentiel d'Apache Spark

Analysez des données volumineuses avec Apache Spark. Chargez vos données pour les analyser, profitez des opérations de transformation et des actions pour agréger vos données, etc.

3h11 (38 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :16 mars 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !