Skip to content

Indexed Parquet Dataset

PyPI version License

Indexed Parquet Dataset — это высокопроизводительная библиотека для быстрого случайного доступа к данным в формате Parquet.

Почему стоит использовать?

Стандартные библиотеки (pandas, pyarrow) работают отлично при чтении файла целиком, но они не предназначены для эффективного случайного доступа по индексу строки, особенно когда данные распределены по сотням Parquet файлов.

indexed-parquet-dataset решает эту проблему, предлагая:

  1. Настоящий O(1) доступ: Мы строим легкий индекс один раз и мгновенно переходим к нужной строке в любом файле.
  2. Экономию памяти: Вы не загружаете датасет целиком. Открывается только нужный кусок файла в момент обращения.
  3. Гибкость схем: Ваши файлы могут иметь разные колонки или их типы — библиотека нормализует всё "на лету".

Сравнение

Фича Pandas / PyArrow HF Datasets IterableDataset Indexed Parquet
Случайный доступ ❌ Медленно/RAM ✅ Хорошо ❌ Нет O(1) / RAM-lite
Чтение по сети ✅ Да ✅ Да ✅ Да ⚠️ Только через FUSE
Schema Evolution ❌ Сложно ⚠️ Частично ⚠️ Сложно Нативно
Lazy Loading ❌ Нет ✅ Да ✅ Да Да (LRU кэш)

Быстрый пример

from indexed_parquet import IndexedParquetDataset

# Создаем датасет из папки
ds = IndexedParquetDataset.from_folder("path/to/data")

# Обращаемся как к обычному списку
row = ds[12345]  
print(row) # {'column_a': 10.5, 'column_b': 'text', ...}

# Прямая интеграция с PyTorch
from torch.utils.data import DataLoader
loader = DataLoader(ds, batch_size=32, shuffle=True)

Основные разделы