Cum să citești și să scrii fișiere Parquet
In this tutorial, you'll learn about Cum să citești și să scrii fișiere Parquet. We cover key concepts, practical examples, and best practices.
Fișierele Parquet în Python se citesc și se scriu cu pyarrow sau fastparquet, oferind un format coloana comprimat, rapid și eficient pentru seturi mari de date.
The Problem
Fișierele CSV devin impracticabile pentru seturi de date mari: ocupă mult spațiu, se încarcă lent și nu păstrează informații despre tipurile coloanelor. Un fișier de 10 GB CSV poate ocupa doar 1-2 GB în format Parquet și se citește de 5-10 ori mai repede.
The Wrong Way
import pandas as pd
# Încărcare CSV — lent și ineficient pentru date mari
df = pd.read_csv("milioane_rânduri.csv")
print(df.info())
Problemă: CSV-ul este text, necomprimat și fără metadate despre tipuri. Ocupă spațiu inutil și durează mult la citire.
The Right Way
import pandas as pd
# Scriere Parquet
df = pd.DataFrame({
"id": range(1, 100001),
"nume": ["Ana"] * 100000,
"salariu": range(3000, 103000)
})
df.to_parquet("date.parquet", engine="pyarrow", compression="snappy")
# Citire Parquet — mult mai rapid
df_parquet = pd.read_parquet("date.parquet", engine="pyarrow")
print(df_parquet.info())
# Citire doar a unor coloane
df_partial = pd.read_parquet("date.parquet", columns=["id", "salariu"])
print(df_partial.head())
Output:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 100000 entries, 0 to 99999
Data columns:
id 100000 non-null int64
nume 100000 non-null object
salariu 100000 non-null int64
dtypes: int64(2), object(1)
memory usage: 2.3 MB # vs ~8 MB pentru CSV
id salariu
0 1 3000
1 2 3001
2 3 3002
Step-by-Step Fix
1. Instalează motorul Parquet
pip install pyarrow fastparquet
2. Scrie DataFrame ca Parquet
df.to_parquet("output.parquet", engine="pyarrow", compression="zstd")
3. Citește Parquet cu selecție pe coloane
# Citește doar coloanele necesare — foarte rapid
df = pd.read_parquet("date.parquet", columns=["id", "valoare"])
Prevention Tips
- Folosește
pyarrowca engine — este mai rapid și suportă mai multe tipuri - Alege compresia
snappy(viteză) sauzstd(rată mai bună de compresie) - Folosește
columnsla citire pentru a citi doar datele necesare
Common Mistakes
- Engine neinstalat —
pyarrowtrebuie instalat separat; default-ul epyarrow - Compresia nepotrivită —
gzipe lent la decompresie; preferăsnappysauzstd - Fără partiționare — pentru seturi foarte mari, folosește
partition_colsînto_parquet - Citirea tuturor coloanelor — pierzi principalul avantaj al Parquet (citirea coloanelor selective)
- Parquet cu schema nestabilă — schimbarea tipurilor între versiuni crapă citirea
FAQ
Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu pandas pentru productivitate și securitate sporite.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro