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

Découvrir les actions sur les RDD

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Étudiez les actions qui vous permettent de retourner des éléments de vos RDD, comme first, top et take.
05:37

Transcription

Voyons maintenant quelques actions que nous pouvons effectuer sur nos RDD. J'ai donc mon RDD originel, j'ai fait une transformation dans TR2 pour avoir un distinct, je l'ai caché. Maintenant que je l'ai caché, je vais faire quelques opérations sur le RDD transformé sans avoir à recréer à chaque fois la transformation. Que peut-on faire ? On peut déjà récupérer les données à l'aide de la méthode Collect. Si vous avez un RDD volumineux, évidemment, vous essayez de ne pas faire un Collect, c'est clair, vous pouvez faire votre Collect comme ceci, c'est un peu de boulot. L'affichage ne va pas me montrer tout le résultat du Collect. Qu'est-ce qui revient ? C'est un tableau de chaînes de caractères, c'est un tableau de strings, vous voyez, qui correspond à la représentation en tableau de tout mon RDD. À noter que je fais des parenthèses ouvrantes et fermantes pour être propre mais Scala ne le demande pas spécifiquement quand il s'agit de méthode Nil ADIC, des méthodes qui n'ont pas de paramètre, cela marche tout aussi bien. Que s'est-il passé avec ce RDD ? Est-ce que le RDD a été partitionné, est-ce qu'on distribue ce traitement et de combien d'éléments on dispose, combien de partitions ? On va pouvoir utiliser un tableau de partition qui est référencé dans l'objet de mon RDD et je vais utiliser sa propriété Size pour savoir combien il y a de partitions. On a trois partitions qui ont été créées par Spark. Très bien, quelles sont les autres actions que je peux appliquer ? Je vais faire un Collect, je voudrais avoir le premier élément ou quelques éléments... Le premier élément c'est First, tout simplement. First ne pose pas de problème de performance car on ne demande pas le plus petit ou le plus grand de façon triée, on prend le premier élément qu'on trouve. Par contre, il y a des actions de type Min, par exemple, ou Max. Vous voyez Min chaîne vide, ça parait logique, Max, à cause de l'accent, ceci vient en dernier. Il faut donc prendre l'intégralité du RDD et chercher le premier ou le dernier en faisant un tri donc vous évitez ce genre de choses sur des volumes importants. Il faut choisir ses actions de façon assez sage pour éviter de surcharger Spark bien entendu. Dans le même genre, vous avez la méthode Top, par exemple un Top 10 qui va prendre les dix premiers éléments de mon RDD de façon triée, donc ce n'est pas idéal non plus. Vous avez une méthode plus intéressante pour prendre dix éléments, par exemple, c'est la méthode Take, vous dites le nombre d'éléments que vous voulez prendre et là, il n'y a pas de notion de tri, c'est beaucoup plus efficace, bien entendu. Maintenant que je viens d'effectuer un certain nombre d'actions sur mon RDD, je vais vous montre l'interface de spark-shell qui est une interface web, que vous pouvez appeler, si vous avez été attentif, au début, on nous dit ici spark context web ui available at.... etc. donc port 40 40, on va y aller. Je vais rafraîchir et voici l'interface du Spark context qui va me montrer un résumé de toutes les opérations qui ont été faites. Spark a un historique de tout ce qui s'est passé, vous voyez qu'il a un historique de toutes les performances de chaque opération. J'ai fait un Collect, ensuite un First, un Min, un Max, un Top. Vous voyez que le Take a pris 34 millisecondes, les autres Min Max, un peu plus, là, on compte en secondes donc à un dixième de secondes. On peut entrer dans les opérations, les voir plus en détail. La visualisation du Dag, c'est-à-dire des opérations qui ont du être faites par Spark pour donner le résultat de l'action. S'il y a eu trois transformations avant une action, on le verra ici. Et puis des statistiques de performance avec des résultats et des log sur toutes les opérations. Cela, c'est vraiment précieux. On a donc la liste des jobs, la liste des différentes opérations. On a des informations sur le stockage de nos RDD, où sont-ils ? Comment sont-ils sérialisés ou non ? Quelle est leur taille en mémoire ? Quelle est l'adresse de chaque Executor pour chaque partition ? Des informations sur l'environnement de Spark, sur les Executors, combien sont actifs, comment ils ont travaillé, où est le driver, quelle est son adresse, un dump du thread, vous voyez que vous avez tout ce dont vous avez besoin et puis, lorsqu'on travaillera avec Spark SQL, on a aussi ces informations qui sont disponibles ici et vous verrez que l'on peut expliquer le plan d'exécution si vous voulez du SQL. Gardez bien cela en tête. Cela va vous permettre vraiment de suivre l'exécution de vos applications Spark et d'améliorer les performances de vos opérations en voyant quelles sont les conséquences de ce que vous faites.

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 !