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 la transformation flatMap

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Grâce à la transformation flatMap, vous pourrez rendre un tableau à deux dimensions vers un nouveau RDD à une seule dimension.
05:26

Transcription

Maintenant que nous avons vu formellement le MapReduce, profitons-en pour simplifier un peu notre syntaxe. Ce que j'ai fait, au préalable, c'est d'abord un Map que j'ai attribué à une valeur, ici, et ensuite un Reduce. On se souvient que tout ceci va être paresseux donc que le Map et le Reduce vont être exécutés en même temps. On peut se simplifier la syntaxe également. Je peux très bien faire le Map et ensuite directement récupérer la valeur retournée et faire un Reduce directement avec le résultat. Donc rien de particulier à ce sujet. Ce que je peux faire également car je suis en Scala c'est utiliser une simplification très intéressante du langage à l'aide d'un symbole qui est le souligné (_) Si je reprends ma chaîne, ces expressions lambda et ces opérations dans l'expression lambda sont tellement évidentes que vous pouvez les réduire avec le souligné, les simplifier nettement, de la façon suivante : « L etc. » souligné. Et le souligné va remplacer cette partie répétitive de l'expression lambda, cela va marcher et je peux même simplifier ceci, c'est le même principe. J'enlève toute cette partie, et je dis voilà, et voilà, et il va comprendre qu'il y a deux paramètres à l'expression lambda et travailler de la même façon. C'est comme vous aimez. Personnellement, j'aime bien les simplifications de langage et les fonctionnalités du langage qui permettent d'être beaucoup plus compact, concis et expressif, mais si vous trouvez ça peu lisible et vous devez faire du code qui doit être maintenu par d'autres personnes qui ne sont pas familières avec Scala, peut-être que ceci est beaucoup plus compréhensible parce que cette syntaxe d'expressions lambda est assez bien connue des développeurs. Prenons un autre exemple. Il y a également une transformation qui s'appelle FlatMap, on va essayer ça. Je prends mon TR, j'utilise non pas Map mais FlatMap et vous allez comprendre. Je passe en expression lambda, je vais prendre la simplification Scala qu'on vient de voir et je vais faire un Split à l'intérieur. Ce que je fais, c'est que je prends les valeurs qui sont apportées dans l'expression lambda ligne par ligne. J'utilise la méthode Split sur la chaîne de caractères, qui vient de l'objet String lui-même et je vais faire un Split par espace. Que suis-je en train de faire ? Je vous fais la syntaxe complète, au cas où. J'ai ma ligne et je dis : sur chaque ligne, fais un split de ma ligne, espace par espace. Split retourne un tableau de chaînes. Je prends une ligne et je décompose la ligne en prenant mot par mot. Mais si je fais cela, je vais me retrouver ici avec un tableau de tableaux, en quelque sorte, parce que le résultat de ma transformation va être un RDD qui contient un tableau de chaînes. J'ai donc un tableau à deux dimensions, si vous voulez. Première dimension, le RDD et, à l'intérieur, chaque élément de RDD est lui-même un tableau de mots. Grâce au FlatMap, je vais aplatir ces deux dimensions en une seule. Je vais me retrouver avec un RDD un seul RDD qui va contenir les mots. On a pris la deuxième dimension du tableau et puis on en a fait un tableau complet. Cela vaut la peine de voir le résultat donc je vais faire un take dessus pour prendre les dix premiers résultats. Voyez que j'ai un array de string puisque mon take est une action, je ne retourne plus un RDD mais un tableau de valeurs, et j'ai donc Projet, Gutenberg, Les, Romans, de, la, Table, Ronde. Vous avez compris, on a vraiment découpé. Le découpage par espace est un peu brut, ce n'est pas forcément très valable ou très précis mais cela suffira pour notre exemple. Mon FlatMap est intéressant parce qu'il va me permettre maintenant de compter le nombre de mots, par exemple. J'ai simplement à faire ceci : un count pour savoir combien il y a de mots, j'en ai 280 111 en tout. On pourrait se demander aussi combien il y a de mots distincts. Facile, je reviens en arrière, je passe dans un distinct, vous vous souvenez qu'il s'agit d'une transformation qui retourne un RDD distinct. Ici, avec mon FlatMap, je me génère un RDD qui contient tous les mots, c'est une première transformation. Ici, avec mon distinct, je me génère un RDD qui contient seulement les valeurs distinctes de ces mots, c'est une deuxième transformation et maintenant je fais un count, c'est une action qui va déclencher l'exécution de tout cela sur les executors de Spark. Un petit peu de boulot... et j'ai donc 34 706 mots distincts.

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 !