L'essentiel d'Apache Spark

Interagir avec PySpark

Testez gratuitement nos 1330 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Utilisez l'invite PySpark pour interagir avec Spark en Python. Apprenez également à sauvegarder votre RDD.
06:03

Transcription

Nous avons beaucoup travaillé en Scala avec nos RDD, jetons un coup d’œil sur l’interpréteur Python, qui s'appelle PySpark. Donc, en scala : quit, pour partir de Spark Shell, qu'ais-je dans mon répertoire Bin, PySpark et c'est aussi simple que ça, appel de PySpark, avec un interpréteur Python qui va s'ouvrir et qui va contenir les mêmes objets ouverts. Spark pour une Spark session, on va en reparler et SC pour notre contexte, donc c'est exactement la même chose. On va de toute façon se retrouver à peu près à la maison, si je reprends mon exemple de fichier texte de la table ronde, il me suffit de faire un sc.text file. c'est donc tout à fait la même chose, les objets contiennent les mêmes méthodes avec le même nom. Je fais donc un text file de tmp./data/ on était dans un répertoire qui s'appelait table_ronde et la méthode accepte également d'ouvrir plusieurs fichiers avec un caractère joker, il n'y a pas de problème. On va mettre ça dans une variable python, évidement. On est tout à fait comme à la maison. On avait travaillé sur nos RDD avec des transformations et des actions, c'est bien entendu, exactement pareil. La seule différence notable sera qu'à l'intérieur de nos appels de transformation, on devra utiliser des syntaxes plus pythoniennes, notamment, la syntaxe « python » pour l'expression « lambda ». Cela va donner quelque chose comme ceci : si je veux faire un tr- et j'avais fait un split, vous vous souvenez, pour récupérer chaque mot ligne par ligne, on va faire un map, c'était un flat map, et la définition d'une expression lambda en python, se fait de la façon suivante : le mot clé lambda, ensuite une variable, par exemple, l pour les lignes, on n'a pas cet opérateur, comme assez traditionnellement dans les langages mais comme on a définit ici le mot clé lambda, tout ce qui suit est considéré comme une lambda, bien entendu, avec cette syntaxe, on fait un : puis on met le corps de l'expression de la lambda qui sera l.split, rien d'extraordinaire ici. Puis on avait fait un « replace all » pour enlever un certain nombre de caractères avec une expression rationnelle. Il n'y a pas vraiment une façon facile de le faire, il faudrait créer un objet d'expression rationnelle en python, on va donc sauter cette étape et récupérer ensuite notre RDD à l'aide du « filter » que nous avions fait. Il doit contenir le mot table, on va utiliser une lambda pythonienne, on va dire « word » et une syntaxe de recherche très phytonesque, on va dire table in w, on peut faire un petit take10 pour voir ce que ça donne, c'est pas mal, on a une liste, on obtient en retour des objets, dépendant du langage de programmation qu'on utilise. Avant, on avait un array de string en scala, ici, on a une liste en python, c'est logique. J'en profite pour voir comment on va sauvegarder le résultat de notre RDD. Si je fais des transformations et que j'ai un RDD que j'ai manipulé, je voudrais le sauvegarder sur le disque. Mais dans quel format ? Par rapport aux options de sauvegarde du RDD, il y en a deux. Save as text file ou save as object file. Donc, une représentation ici à object file, en format sequence file, d'objets qui ont été réalisés, des objets pythons ou scala. Par contre, save as text file, va être clairement sauvegardé en texte. Donc, on va utiliser ça. Ici, attention, j'ai un take10, c'est une action qui retourne une liste. Il faut que je l'enlève, je ne vais pas sauvegarder la liste. Je vais sauvegarder un RDD, il faut donc que j'arrive avec mes transformations qui me génèrent un RDD, et c'est lui que je vais sauvegarder : save as text file, bien sûr et je lui ai donné le chemin. Alors, ne donnez pas le chemin d'un fichier texte mais d'un répertoire car à l'intérieur « save as text file » va sauvegarder individuellement les différents partitions qui ont été générées par les exécuteurs. Donc, je vais faire pmp/data/table car c'est tout ce qui contient table, on va dire ça comme ça... voilà, la sauvegarde est faite, donc, un petit exit, c'est une fonction Python pour quitter l'interpréteur, avec des parenthèses... et on va faire un ls/tmp/data/table et voyez que j'ai part 00, 01, 02, il y a trois partitions et j'ai donc trois contenus, je vais regarder le part 00-0 par exemple, je vais faire un 4, plutôt qu'un ls pour voir le contenu, et voilà, en sortant de ligne, mon RDD a été sauvegardé, une ligne par élément, c'est classique et tout à fait compréhensible. On a fait un peu le tour. On a vu comment travailler avec nos RDD, on a vu comment les charger, appliquer des transformations, appliquer des actions, et puis ensuite sauvegarder le résultat. Donc, vous avez déjà entre les mains une base pour réaliser des opérations distribuées en RDD avec Spark.

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 !