Vue d'ensemble
PyArrow 15.0, publie le 22 janvier 2024, ajoute l'interface PyCapsule pour l'echange zero-copy entre bibliotheques Python.
Fonctionnalites principales
Interface PyCapsule
L'interface PyCapsule (Arrow C Data Interface) permet d'echanger des donnees Arrow entre bibliotheques sans copie memoire, via __arrow_c_array__.
python
import pyarrow as pa
arr = pa.array([1, 2, 3, 4, 5])
# Export via PyCapsule (Arrow C Data Interface)
schema_capsule, array_capsule = arr.__arrow_c_array__()
# Import depuis une autre bibliotheque
restored = pa.Array._import_from_c_capsule(
schema_capsule, array_capsule
)
print(restored) # [1, 2, 3, 4, 5]
Ameliorations Parquet
Le moteur Parquet gagne des lectures plus rapides grace a un decodage optimise des pages et un meilleur filtrage par predicate pushdown.
python
import pyarrow.parquet as pq
import pyarrow as pa
table = pa.table({'id': range(1000), 'val': range(1000)})
pq.write_table(table, '/tmp/data.parquet')
# Lecture avec filtrage pushdown
result = pq.read_table(
'/tmp/data.parquet',
filters=[('id', '>', 500)],
)
print(result.num_rows) # 499
