L'essentiel d'Apache Spark

Sauvegarder au format Parquet

Testez gratuitement nos 1270 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Parquet est un format de stockage orienté colonnes. Dans cette séquence, vous apprendrez à sauvegarder votre DataFrame en Parquet.
05:23

Transcription

Une note au sujet des formats. On a bien compris que Spark peut lire plusieurs formats et finalement, en big data, la technique de stockage n'est pas très importante. Elle peut l'être. Ce qu'on va essayer de faire, c'est au moins de compresser les données. Il y a un certain nombre de formats qui compressent par défaut de façon à pouvoir charger les données du disque plus rapidement. C'est en général une optimisation de performance. Pour l'instant on a utilisé du Avro donc on a lu nos données en Avro. C'est un format relativement bon parce qu'il est aussi relativement bon en performance. Il y a eu récemment, à l'heure où j'enregistre cette vidéo, une présentation faite par Owen O'Malley qui est un des co-fondateurs d'Hortonworks une société qui travaille autour du big data, une grande société de big data qui distribue notamment Spark et qui a fait, lui-même, un test, un benchmark sur les différents modes de stockage notamment Avro, le format Json (javascript object notation) ORC qui est aussi un format traditionnel dans le monde du big data et Parquet dont je vous ai parlé. Je vous encourage à regarder les slides de cette présentation qui sont disponibles sur SlideShare et notamment... (je vais aller assez vite ici) ...vous montrer des exemples de benchmarks. Vous voyez ici, je remonte un peu, qu'on a des benchmarks sur les différents formats, combien ça a pris de temps pour traiter ces formats. On est clairement sur du Json, non pas très intéressant, mais on est sur du Parquet et de l'Avro. Vous voyez qu'en termes de performance il n'y a pas une grande différence. Là, c'était sur un jeu de données assez volumineux qu'il a utilisé pour sa présentation. Tout cela pour vous dire qu'entre Avro et Parquet, selon les cas d'utilisation, c'est plutôt pas mal. Il y a une différence entre Avro et Parquet. Avro va stocker les données selon un schéma et va les charger complètement. Par contre, Parquet est un format de stockage qui permet de séparer mieux les colonnes. C'est un format plus orienté colonnes. Ce qui fait que si vous récupérez un jeu de données et vous voulez ne travailler que sur certaines colonnes d'une table assez volumineuse, ça peut être intéressant de travailler plutôt en Parquet. Grâce à Parquet, vous pourrez faire des analyses ou des agrégats sur une ou deux colonnes de votre jeu de données sans avoir à charger les autres colonnes. Typiquement pour des calculs importants, des agrégats sur seulement quelques colonnes, un Parquet peut être un bien meilleur choix. D'où la question comment lire et écrire du Parquet ? Je pense que vous vous en doutez, puisqu'on a fait un Spark read Avro on devrait pouvoir faire un Spark read Parquet et, juste pour vous faire un exemple, que je fasse mon import, ici, puisque j'ai relancé Scala. Il ne fait pas que j'oublie d'importer Avro, voilà et je peux recommencer. Par contre, si je veux écrire du Parquet je n'ai pas besoin d'importer un Mspace dans mon environnement Scala puisque, souvenez-vous, Parquet est nativement intégré dans Spark donc dans mon Spark Shell, j'ai déjà les bibliothèques de Parquet qui sont chargées. Je peux faire quelque chose comme ceci : do write puisqu'on avait un Spark read Avro. Ici, je vais pouvoir prendre directement prendre mon DataFrame, il y a une méthode write. Cette méthode va pouvoir avoir une sous-méthode en disant dans quel format et puis, je vais faire tmp data et je vais donner un nom... Je corrige c'est co et non do, puisque j'étais sur les communes. Je vais faire communes.parquet ce qui est l'extension conventionnelle. Il ne faut pas que j'oublie de faire une chaîne et on est en train d'écrire du Parquet, voilà qui est fait. Je vous montre en quoi cela consiste. Je suis dans data, voyez qu'ici j'ai communes.parquet Si je regarde en quoi cela consiste, il s'agit d'un répertoire, voyez : directory, le petit d pour dire que c'est un répertoire. Je vais aller à l'intérieur. On a vraiment un format natif. Il y a un niveau de compression indiqué ici qui est snappy qui est une bibliothèque de compression. Traditionnellement, il y en a deux utilisées : soit snappy, soit zlib. Zlib est plus comme du zip. Snappy est une autre bibliothèque, elle compresse un peu moins mais elle est plus rapide à compresser et décompresser. Vous voyez que j'ai juste un petit fichier de CRC pour le checksum du fichier. Parquet s'organise en interne et, si vous voulez ouvrir du Parquet, vous faites simplement ceci et on est au même résultat. Vous voyez que c'est assez facile de changer de format de stockage dans votre travail 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 !