Skip to content

Cum să citești și să scrii fișiere Parquet

DodaTech Updated 2025-01-15 2 min read

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 pyarrow ca engine — este mai rapid și suportă mai multe tipuri
  • Alege compresia snappy (viteză) sau zstd (rată mai bună de compresie)
  • Folosește columns la citire pentru a citi doar datele necesare

Common Mistakes

  1. Engine neinstalatpyarrow trebuie instalat separat; default-ul e pyarrow
  2. Compresia nepotrivităgzip e lent la decompresie; preferă snappy sau zstd
  3. Fără partiționare — pentru seturi foarte mari, folosește partition_cols în to_parquet
  4. Citirea tuturor coloanelor — pierzi principalul avantaj al Parquet (citirea coloanelor selective)
  5. Parquet cu schema nestabilă — schimbarea tipurilor între versiuni crapă citirea

FAQ

### De ce Parquet e mai rapid decât CSV?

Parquet stochează datele pe coloane (format coloana), ceea ce permite citirea doar a coloanelor necesare și compresie mult mai bună.

### Ce engine Parquet să aleg?

pyarrow pentru viteză maximă și suport complet. fastparquet pentru compatibilitate cu medii fără PyArrow.

### Parquet suportă partajare?

Da, poți scrie un set de fișiere Parquet partiționate cu df.to_parquet("cale/", partition_cols=["an", "luna"]).

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