Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

L'essentiel d'Apache Spark

Ouvrir un RDD en Scala

Testez gratuitement nos 1340 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
À l'intérieur de Spark shell, voyez comment ouvrir un RDD qui contient les lignes de plusieurs fichiers textes.
05:58

Transcription

Afin de vous montrer comment fonctionnent les AV-IT interactives, je vais vous montrer deux exemples et puis on va utiliser les deux. On va faire un exemple en Scala et un en Python. Vous verrez d'ailleurs, si vous n'êtes pas familier avec Scala que ce n'est pas très compliqué. Scala est un langage qui a une syntaxe assez proche de la plupart des langages de script. Il n'y a rien de particulièrement ésotérique dans sa syntaxe donc si vous voulez utiliser du Scala, vous serez très vite dans un contexte familier si vous savez faire du Python ou un langage de type C Sharp, Java, etc., de préférence un langage de script car c'est assez proche comme concept. Premier exemple, on va prendre du Scala et j'aimerais vous montrer un RDD très simple. Pour cela, ce qu'on va faire, c'est utiliser à travers docker donc si je regarde ici... (je vais revenir, j'ai ouvert un autre onglet et suis revenu sur mon système Linux) ...dans Git docker-spark, il y a un répertoire qui s'appelle Data, ici. Si je regarde mon docker-compose, je vois qu'ici on map le répertoire Data vers tmp Data, dans le container du worker et puis aussi, si je monte un peu, même chose dans le container du master. J'ai donc à disposition tout ce qu'il y a dans mon répertoire Data, à l'intérieur du container, dans tmp Data. Qu'y a-t-il dans Data ? J'ai posé plusieurs choses : j'ai fait un répertoire notamment qui s'appelle table_ronde, dans lequel j'ai posé quelques fichiers qui viennent du Projet Gutenberg. Le Projet Gutenberg est un projet de numérisation des livres qui sont libres de droit, qui sont dans le domaine public, et ce que j'ai fait, c'est que j'ai récupéré en texte brut UTF8 un certain nombre de fichiers, trois fichiers qui correspondent à des romans de la Table Ronde et qui sont très nettement dans le domaine public puisqu'ils ont été publiés chez un éditeur au 19e siècle. J'en ai récupéré trois, pour qu'il y ait un peu de volume. Vous voyez, ça fait 500 Ko, peut-être un ou deux Mo en tout, de façon à avoir un peu de texte à analyser. Cela étant dit, je reviens ici, je vérifie que j'ai bien un tmp data et que je vois bien mes données à l'intérieur. Je suis dans le container du master, vous vous souvenez, je suis là. Puis je vais utiliser Spark Shell pour me connecter en Scala. Je vais d'abord définir une variable, ou plutôt une valeur. En Scala, il y a trois mots-clés pour définir des variables, des choses : vous pouvez utiliser Ref pour définir une méthode, Var pour définir une variable et Val pour définir ce qu'on appelle une valeur, une forme de constante, quelque chose qui va être immutable, immutable, si vous préférez. Là, je vais utiliser Val et je vais récupérer un RDD à partir de textes et je vais l'appeler TR pour dire que ce sont les romans de la Table Ronde. Pourquoi j'utilise Val ? Parce qu'un RDD va être immuable. Lorsque je vais manipuler mon RDD, il va retourner une nouvelle version de ce RDD, une transformation si je fais une transformation, ou des résultats à partir du RDD si je fais une action. Le RDD, en lui-même, n'est pas mutable. On pourrait se demander pourquoi ne peut-on pas modifier un RDD ? Parce qu'on fait quelque chose de distribué. Imaginez que vous gérez plusieurs trades et que vous devez travailler sur un RDD, vous faites des modifications à l'intérieur. Comment va-t-on gérer le multi-trading ? Comment va-t-on gérer des modifications appliquées au même jeu de données par des trades différents ? C'est ingérable donc on fait des RDD immuables et on va faire des traitements sur ces RDD qui, s'il y a quelque chose à modifier, vont retourner un nouvel objet RDD différent. Pour cela, raison de plus, on va parfois fixer, sérialiser le RDD en mémoire comme on en a parlé, de façon à pouvoir travailler avec ce RDD plus rapidement, créer de nouveaux RDD, etc. Dès qu'on atteint un certain volume, il est indispensable de partitionner et distribuer le traitement. Je crée ma variable et ensuite je vais utiliser mon contexte Spark, mon SparkContext qui est déjà défini, ici, voyez le SparkContext est disponible et puis je vais utiliser une des nombreuses méthodes de lecture du contexte. Je vais utiliser TextFile et passer en paramètre un fichier texte, ou plutôt plusieurs fichiers texte que je veux charger dans mon RDD. Un des premiers avantages de Spark, c'est que c'est très souple en termes de chargement de données. Tout est bien encapsulé donc il y a très peu de choses à faire soi-même pour charger les données. Il suffit d'appeler la bonne méthode et les données vont se charger miraculeusement. Je vais aller dans tmp data, vous vous souvenez que le répertoire s'appelle table_ronde (avec un souligné) et je peux utiliser des caractères jocker pour dire : prends-moi tous les fichiers .text du répertoire pour me les charger dans le RDD. Il me dit que c'est bon. Maintenant, mon tr est un org apache spark rdd de string, donc il a été typé, il correspond à ceci. Très bien, je peux obtenir cette information en faisant simplement : tr et il va me dire qu'il est un RDD.

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 !