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

L'essentiel d'Apache Spark

Construire un jeu de données

Testez gratuitement nos 1343 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Dans cette séquence, vous allez d'abord récupérer un fichier délimité en open data. Ensuite, vous le convertirez au format Avro avec un script Python.
06:00

Transcription

Pour avoir un volume de données un peu plus important, avoir quelque chose d'un peu plus proche de la réalité, un tout petit peu seulement, j'ai récupéré le fichier Fantoir. C'est le fichier généré par le Ministère des Finances et des comptes publics des voies et des lieux-dits en France. C'est un fichier que j'ai téléchargé dans sa dernière version. C'est, j'allais dire, du séparé par virgules mais pas vraiment, c'est un format fixe, c'est du texte. Il est en licence ouverte donc tout le monde peut l'utiliser. Je l'ai récupéré et téléchargé, il se trouve sur ma machine Linux dans le répertoire data (mais cela importe peu) et j'ai bien le Fantoir en zip que j'ai téléchargé. Combien pèse-t-il ? 129 Mo zippé et je l'ai décompressé sur 911 Mo. Qu'il y a-t-il à l'intérieur ? Des enregistrements, d'abord de départements ensuite de communes et, à l'intérieur de la commune, avec des codes, les différents lieux-dits. Le format de ce fichier est disponible dans un pdf qu'on trouve facilement et qui s'appelle : descriptif du fichier Fantoir avec la représentation fonctionnelle du fichier. On voit qu'on a un code joliment nommé Rivoli pour le code de la voie et on a différents enregistrements. Un enregistrement initial qu'on va sauter, un enregistrement de direction qui veut dire le code du département et celui de la direction, un enregistrement de commune et un enregistrement de voie. Ce n'est pas très pratique car tout est mélangé. Ça, c'est l'enregistrement de direction, ça c'est l'enregistrement de commune et ça c'est l'enregistrement de la voie. Alors, qu'est-ce que j'ai fait ? J'ai simplement récupéré ces informations avec un script Python, j'ai fait deux scripts ; on va aller dans Python. Il y a un script qui s'appelle read_Fantoir_communes, je vais lire les informations de commune c'est-à-dire ceci. J'ai un read_Fantoir_lieuxdits, je vais lire les informations lieux-dits dans la commune puis je récupère les codes. Mon but avec ces scripts était de les traduire en fichiers Avro. Qu'ai-je fait ? D'abord, j'ai récupéré, en utilisant pip, le gestionnaire de paquets de Python, j'ai fait un install de la bibliothèque pour lire et écrire de l'Avro en Python. Ensuite, j'ai défini dans deux fichiers Fantoir commune et Fantoir lieudit des schémas Avro, je vous en montre un. Voyez, j'ai fait mon cat, c'est donc ici, ça commence là. La définition d'un schéma Avro, on dit quel est le namespace c'est-à-dire le nom du fichier qu'on va générer, de type record, le nom en interne va être la commune et puis, voilà ce qu'on va avoir : un code un nom, un type de commune et quel est le type. J'ai fait la même chose pour lieudit où j'ai dit : je veux la commune, l'identifiant du lieu-dit, la nature, le libellé, le caractère et la voie. Et ensuite, je vous montre read_Fantoir_communes, j'ai simplement fait du code Python qui importe Avro. Il va lire le fichier ici et par ce schéma Avro on ouvre le fichier, on lit, on génère un writer Avro pour le stocker dans ce fichier Avro. Ensuite je teste la longueur du début de la ligne, finalement, car je sais que si, sur les dix premiers caractères, quand je fais un rstrip, c'est-à-dire que j'enlève les espaces, à droite il me reste trois caractères, c'est donc la description, s'il me reste six caractères, ça veut dire que c'est la commune, s'il me reste dix caractères, ça veut dire que c'est le lieu-dit. Ensuite, très simplement, je me dis que si je suis dans la commune je récupère, aux différentes positions, mes informations, je les mets dans des variables Python, tout simplement et, après, je fais ici un enregistrement sous forme de perk valeur et je fais un append dans Avro, tout simplement. C'est le data file writer de ma bibliothèque Avro qui va s'occuper d'écrire le fichier Avro. J'ai fait la même chose pour les lieux-dits, ce n'est pas très important, ça ne nous touche pas directement pour la formation Spark mais le résultat est un fichier qui s'appelle communes.avro qui fait 854 Ko et un fichier qui s'appelle lieuxdits.avro qui est un peu plus gros et qui fait 247 Mo. On va pouvoir s'amuser un petit peu avec ça parce que maintenant avec Spark on va lire ces fichiers Avro. J'ai préféré le faire comme cela parce que c'est plus compliqué de lire des fichiers délimités comme on les avait et lorsque vous allez travailler avec des données big data, c'est une meilleure idée de les avoir déjà stockées dans un format facile à lire en Spark que ce soit de l'Avro ou du Parquet simplement. Ça peut valoir la peine d'écrire du Parquet par exemple. On le pourra d'ailleurs, si on le veut, et sauvegarder en 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
Votre/vos formateur(s) :
Date de parution :16 mars 2017
Durée :3h11 (38 vidéos)

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 !