3 Manières d’Ouvrir un Fichier Parquet en Python – Facile

Dans cette article, tu va découvrir 3 manières d’ouvrir un fichier Parquet en Python pour charger tes données dans ton environnement.

En tant que Data Scientist, il est essentiel d’apprendre à ouvrir un fichier Parquet en Python.

Ce format de fichier, développé par Apache, offre de nombreux avantages dans le stockage et le traitement de données.

De plus, les librairies Python open source Pandas, PyArrow et Polars te permettent de manipuler ce format facilement.

On voit tout cela dans cette article!

Qu’est-ce qu’un fichier Parquet?

Le Parquet est un format de fichier de données open source, conçu pour stocker et récupérer efficacement des données.

Il offre des avantages significatifs en termes de compression de données et d’encodage, ce qui améliore les performances lors du traitement de données complexes en gros volumes.

Contrairement aux formats de stockage de données basés sur les lignes, le Parquet organise les données par colonnes, ce qui permet d’économiser de l’espace et d’accélérer le traitement de requêtes.

Le Parquet est couramment utilisé dans pour des analyses (OLAP) en conjonction avec des bases de données OLTP.

Ce format de fichier présente plusieurs caractéristiques essentielles.

Apache Parquet – Logo

Caractéristiques du Parquet

Tout d’abord, il est gratuit et open source, ce qui le rend accessible à tous.

Il est également indépendant du langage de programmation, ce qui signifie qu’il peut être utilisé avec différents langages.

De plus, il prend en charge des types de données complexes et les structures de données avancées. Il est ainsi adapté au stockage de tableaux structurés, d’images, de vidéos et de documents.

L’un des avantages majeurs du Parquet réside dans son efficacité en matière de stockage dans le cloud.

Grâce à sa compression par colonnes et à ses schémas d’encodage, il permet d’économiser un espace considérable.

En outre, il améliore le débit de données et les performances en utilisant des techniques telles que le « saut de données » (data skipping), qui permet de lire uniquement les colonnes nécessaires, minimisant ainsi la charge de lecture.

Le Parquet est une solution optimale pour le traitement de données volumineuses. Il est utilisé par les plus grands: AWS Athena, Amazon Redshift Spectrum, Google BigQuery et Google Dataproc. Il va sans dire qu’il est donc essentiel de savoir traiter ce type de fichier.

Ouvrir un fichier Parquet dans un DataFrame Pandas – Python

Qu’est-ce que Pandas?

La bibliothèque Pandas est l’outil le plus populaire pour travailler avec des données dans Python.

Elle offre une manière simple et efficace de manipuler, analyser et visualiser des données: Les DataFrames. Une structure de données puissante qui ressemble à un tableau.

Un DataFrame est une grille rectangulaire composée de lignes et de colonnes, où chaque colonne peut contenir des données de différents types tels que des nombres, des chaînes de caractères ou des dates.

Cette flexibilité rend les DataFrames extrêmement polyvalents pour traiter une grande variété de données.

Avec Pandas, tu peux facilement importer des données à partir de fichiers CSV, Excel, SQL – et même Parquet!

Comment l’utiliser?

Il est facile d’importer des données stockées dans un fichier au format Parquet avec la librairie Pandas en Python.

Voilà le code pour ce faire:

import pandas as pd

df_parquet = pd.read_parquet('/folder/file.parquet')

Tout d’abord, on importe la librairie Pandas en utilisant l’alias pd. Cela nous permet d’accéder aux fonctionnalités de Pandas en utilisant ce raccourci.

Ensuite, nous utilisons la fonction read_parquet() pour lire le fichier Parquet spécifié.

Cette fonction prend en argument le chemin du fichier Parquet que nous voulons lire.

Les données extraites du fichier Parquet sont ensuite stockées dans un DataFrame que nous avons nommé df_parquet.

Pandas est utile car il permet de charger facilement un fichier Parquet dans un DataFrame.

Néanmoins, il se peut que les données contenues dans ton fichier soient massives.

Dans ce cas Pandas peut s’avérer inefficace. Mais d’autres approches sont à ta portée!

Au fait, si ton objectif est d'apprendre le Deep Learning - j’ai préparé pour toi le Plan d’action pour Maîtriser les Réseaux de neurones.

7 jours de conseils gratuits d’un ingénieur spécialisé en Intelligence Artificielle pour apprendre à maîtriser les réseaux de neurones à partir de zéro :

  • Planifie ton apprentissage
  • Structure tes projets
  • Développe tes algorithmes d’Intelligence Artificielle

J’ai basé ce programme sur des faits scientifiques, des approches éprouvées par des chercheurs mais également mes propres techniques que j'ai conçues au fil de mes expériences dans le domaine du Deep Learning.

Pour y accéder, clique ici :

RECEVOIR MON PLAN D'ACTION

RECEVOIR MON PLAN D'ACTION

À présent, on peut revenir à ce que je mentionnais précédemment.

Ouvrir un fichier Parquet par Batch – Python

Qu’est-ce que PyArrow?

La librairie PyArrow permet de manipuler et de traiter des données de manière efficace. Elle facilite également le transfert de données entre différents formats.

En utilisant PyArrow, tu peux convertir facilement tes données entre différents types (tableaux NumPy, DataFrames pandas, …) ce qui fluidifie l’analyse de données.

De plus, cette librairie offre des performances exceptionnelles, ce qui permet de gérer de grandes quantités de données de manière rapide et efficace.

Un extrait du fichier

Grâce à PyArrow, il est possible de lire un fichier Parquet volumineux que Pandas ne parvient pas à traiter.

Par exemple, on peut extraire les 350 premières lignes du fichier :

import pyarrow.parquet as pq

parquet_file = pq.ParquetFile('/folder/file.parquet')

for i in parquet_file.iter_batches(batch_size=350):
    print("RecordBatch")
    df_parquet = i.to_pandas()
    break

On importe la librairie PyArrow. Puis, on ouvre le fichier en utilisant la classe ParquetFile.

Ensuite, on effectue une boucle pour lire le contenu du fichier par petites parties (batches) de 350 éléments à la fois. Le code s’arrête après avoir lu le premier lot (break).

La totalité du fichier

On peut également lire la totalité du fichier dans plusieurs Dataframe:

import pyarrow.parquet as pq

batch_dataframe = []

parquet_file = pq.ParquetFile('/folder/file.parquet')

for i in parquet_file.iter_batches(batch_size=350):
    print("RecordBatch")
    batch_dataframe.append(i.to_pandas())

Ici, pour chaque batch, on affiche RecordBatch à l’écran, puis on le convertit en un DataFrame Pandas que l’on ajoute à la liste batch_dataframe.

Après avoir parcouru tous les batches de données du fichier Parquet, la liste batch_dataframe contiendra l’ensemble des données. Chaque élément de la liste représente un lot de 350 éléments sous forme de DataFrame pandas.

Pour parcourir les données, il faudra donc analyser plusieurs DataFrame.

Bien qu’efficace, cette approche à plusieurs DataFrame peut s’avérer être un inconvénient dans certains projets. Notamment, lorsque le Data Scientist souhaite charger la totalité des données dans un seul DataFrame.

Heureusement, une dernière option existe pour ce faire.

Ouvrir un fichier Parquet dans un LazyDataFrame – Python

Qu’est-ce que Polars?

Polars est une nouvelle librairie centrée sur la manipulation de données structurées à travers des DataFrames puissants.

Ces DataFrame sont « lazy », c’est-à-dire qu’ils évaluent les requêtes uniquement lorsque c’est nécessaire.

Cela réduit considérablement l’utilisation de la mémoire de ton ordinateur et, de ton processeur.

Grâce à Polars, tu pourras charger des datasets volumineux et les traiter rapidement.

Comment l’utiliser?

Voilà comment créer un LazyDataframe à partir d’un fichier CSV avec Polars :

import polars as pl

train = pl.scan_parquet('/folder/file.parquet')

Via l’alias pl, on importe la librairie Polars. Ensuite, on utilise la fonction scan_parquet() pour lire en mode « lazy » le fichier Parquet spécifié.

Comme avec Pandas, les données extraites du fichier Parquet sont ensuite stockées dans un DataFrame que nous avons nommé df_parquet.

Avec Polars, il est facile de lire un fichier Parquet Volumineux pour faire de la Data Analysis.

C’est une composante centrale de l’Intelligence Artificielle.

Sans données massives – impossible d’entraîner des réseaux de neurones comme ChatGPT.

Si tu veux approfondir tes connaissances dans le domaine, tu peux accéder à mon Plan d’action pour Maîtriser les Réseaux de neurones.

Un programme de 7 cours gratuits que j’ai préparé pour te guider dans ton parcours pour apprendre le Deep Learning.

Si ça t’intéresse, clique ici :

RECEVOIR MON PLAN D’ACTION

sources:

Un dernier mot, si tu veux aller plus loin et apprendre le Deep Learning - j’ai préparé pour toi le Plan d’action pour Maîtriser les Réseaux de neurones.

7 jours de conseils gratuits d’un ingénieur spécialisé en Intelligence Artificielle pour apprendre à maîtriser les réseaux de neurones à partir de zéro :

  • Planifie ton apprentissage
  • Structure tes projets
  • Développe tes algorithmes d’Intelligence Artificielle

J’ai basé ce programme sur des faits scientifiques, des approches éprouvées par des chercheurs mais également mes propres techniques que j'ai conçues au fil de mes expériences dans le domaine du Deep Learning.

Pour y accéder, clique ici :

RECEVOIR MON PLAN D'ACTION

RECEVOIR MON PLAN D'ACTION

Tom Keldenich
Tom Keldenich

Ingénieur spécialisé en Intelligence Artificielle et passionné de données !

Fondateur du site Inside Machine Learning

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This page will not stay online forever

Enter your email to receive for free

The PANE method for Deep Learning

* indicates required

 

You will receive one email per day for 7 days – then you will receive my newsletter.
Your information will never be given to third parties.

You can unsubscribe in 1 click from any of my emails.



Entre ton email pour recevoir gratuitement
la méthode PARÉ pour faire du Deep Learning


Tu recevras un email par jour pendant 7 jours - puis tu recevras ma newsletter.
Tes informations ne seront jamais cédées à des tiers.

Tu peux te désinscrire en 1 clic depuis n'importe lequel de mes emails.