Les transformations Map, Filter et CombinePerKey dans l’écriture de pipelines Apache Beam avec des exemples

Les transformations Map, Filter et CombinePerKey dans Apache Beam avec exemples

Photo de JJ Ying sur Unsplash

Pratiquons avec de vraies données

Apache Beam gagne en popularité en tant que modèle de programmation unifié pour les pipelines de traitement de données massives efficaces et portables. Il peut traiter à la fois des données en batch et en streaming. C’est ainsi que vient le nom. Beam est la combinaison des mots Batch et Stream :

B(de Batch) + eam(de stream) = Beam

La portabilité est également une excellente fonctionnalité. Vous n’avez qu’à vous concentrer sur l’exécution du pipeline et il peut être exécuté depuis n’importe où, comme Spark, Flink, Apex ou Cloud Dataflow. Vous n’avez pas besoin de modifier la logique ou la syntaxe pour cela.

Dans cet article, nous nous concentrerons sur l’apprentissage de l’écriture de certains pipelines ETL à l’aide d’exemples. Nous essaierons certaines opérations de transformation en utilisant un bon jeu de données et j’espère que vous trouverez toutes ces opérations de transformation utiles dans votre travail également.

N’hésitez pas à télécharger ce jeu de données public et à suivre :

Données d’échantillon de ventes | Kaggle

Un notebook Google Colab est utilisé pour cet exercice. L’installation est donc très facile. Utilisez simplement cette ligne de code :

!pip install --quiet apache_beam

Une fois l’installation terminée, j’ai créé un répertoire pour cet exercice nommé ‘data’ :

mkdir -p data

Plongeons dans le sujet d’aujourd’hui, qui est les opérations de transformation. Pour commencer, nous travaillerons sur un pipeline simple qui se contente de lire le fichier CSV et de l’écrire dans un fichier texte.

Ce n’est pas aussi simple que la méthode read_csv() de Pandas. Cela nécessite une opération coder(). Tout d’abord, une classe CustomCoder() a été définie ici qui encode d’abord les objets en octets, puis décode les octets en objets correspondants, et enfin spécifie si ce codeur est garanti pour encoder des valeurs de manière déterministe. Veuillez consulter la documentation ici.

Si c’est votre premier pipeline, veuillez remarquer la syntaxe d’un pipeline. Après la classe CustomCoder(), il y a le pipeline le plus simple. Nous avons d’abord initié le pipeline vide en tant que ‘p1’. Ensuite, nous avons écrit le pipeline ‘sales’ où nous avons d’abord lu le fichier CSV du dossier de données que nous avons créé précédemment. Dans Apache Beam, chaque opération de transformation dans le…

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Intelligence artificielle pour l'augmentation et la productivité

Le MIT Schwarzman College of Computing accorde des subventions de démarrage à sept projets interdisciplinaires explor...

Science des données

Le collectif MIT-Pillar AI annonce les premiers bénéficiaires de subventions initiales.

Six équipes menant des recherches en IA, en science des données et en apprentissage automatique reçoivent des finance...

AI

Inflection AI sécurise un financement de 1,3 milliard de dollars dirigé par des géants de la technologie et des leaders de l'industrie.

La start-up d'intelligence artificielle Inflection AI a fait un bond en avant considérable dans sa trajectoire de cro...

Science des données

Novo Nordisk soutiendra les post-doctorants du MIT travaillant à l'intersection de l'IA et des sciences de la vie.

Le programme de bourses postdoctorales en intelligence artificielle MIT-Novo Nordisk soutiendra jusqu'à 10 post-docto...

AI

Accélérer l'arrivée de l'énergie de fusion grâce à l'IA et à l'accessibilité

Le Centre de science des plasmas et de fusion du MIT recevra le soutien du DoE pour améliorer l'accès aux données de ...

AI

Soutenir la durabilité, la santé numérique et l'avenir du travail

L'Initiative de Convergence MIT et Accenture pour l'Industrie et la Technologie sélectionne trois nouveaux projets de...