Новости и статьи об искусственном интеллекте и нейросетях. Мы собираем и обрабатываем самую актуальную информацию из мира AI. О проекте

Статьи

CSV, Parquet, Arrow: форматы хранения данных

Сравниваем форматы CSV, Parquet и Arrow для табличных данных в Hugging Face Datasets: различия в хранении, скорости и типах. CSV прост, но медленный для больших объемов; Parquet компактный и колоночный; Arrow идеален для памяти. Выбор зависит от задач — от экспериментов до аналитики.

13 января 2026 г.
2 мин
20
CSV, Parquet и Arrow: сравнение форматов хранения данных

Введение

Библиотека Hugging Face Datasets упрощает загрузку наборов данных одной командой. Такие данные обычно приходят в форматах CSV, Parquet или Arrow. Все они предназначены для табличных данных, но различаются в работе на низком уровне. Выбор формата влияет на способ хранения, скорость чтения, занимаемое место и точность типов данных. Эти особенности особенно заметны при работе с большими объемами данных и сложными моделями. Мы разберем, как Hugging Face Datasets обрабатывает каждый формат, чем они отличаются на диске и в памяти, и в каких случаях какой лучше применять.

CSV расшифровывается как значения, разделенные запятыми. Это обычный текст: одна строка на запись, столбцы через запятые или табуляцию. Такой файл открывается практически везде — в Excel, Google Sheets, pandas или базах данных. Формат предельно простой и совместимый.

Example: name,age,city
Kanwal,30,New York
Qasim,25,Edmonton

Hugging Face воспринимает CSV как формат по строкам, то есть читает данные построчно. Для небольших наборов это нормально, но при росте объемов скорость падает. Плюс есть ограничения:

  • Отсутствие явной схемы: все в текстовом виде, типы приходится определять при каждой загрузке. Несогласованность данных приводит к ошибкам.
  • Большой размер и медленный ввод-вывод: текст раздувает файлы, а преобразование строк в числа нагружает процессор.

Паркет

Parquet — бинарный формат по колонкам. В отличие от CSV, где данные идут строками подряд, здесь значения группируются по столбцам. Это ускоряет чтение и запросы, если нужны отдельные колонки, а сжатие уменьшает размер и трафик. Формат сохраняет схему, чтобы типы не терялись. Он подходит для пакетной обработки и масштабной аналитики, но не для частых мелких правок в файл — лучше для разовых записей больших порций.

Возьмем тот же пример из CSV: в Parquet все имена соберутся вместе, все возраста — отдельно, города — тоже. Получается колоночная структура:

Names: Kanwal, Qasim
Ages: 30, 25
Cities: New York, Edmonton

К каждой колонке добавляются метаданные: тип данных, минимальные и максимальные значения, количество пустых ячеек, информация о сжатии. Благодаря этому чтение ускоряется, хранение оптимизируется, типы остаются верными. Алгоритмы вроде Snappy или Gzip дополнительно сжимают место на диске. Вот ключевые плюсы:

  • Сжатие: повторяющиеся значения в колонках сжимаются отлично. Файлы компактные и дешевые в хранении.
  • Чтение по колонкам: загружаются только нужные столбцы, запросы работают быстрее.
  • Поддержка типов: схема фиксируется, типы не угадываются заново.
  • Масштабируемость: справляется с миллионами или миллиардами строк.

Arrow

Arrow отличается от CSV и Parquet. Это колоночный формат, ориентированный на память для быстрых вычислений. В Hugging Face любой Dataset строится на таблице Arrow, независимо от исходного формата — CSV, Parquet или самого Arrow. С тем же примером данных Arrow хранит колонки в непрерывных блоках памяти:

Names: contiguous memory block storing Kanwal, Qasim
Ages: contiguous memory block storing 30, 25
Cities: contiguous memory block storing New York, Edmonton

Благодаря сплошным блокам операции над колонкой — фильтрация, преобразования или суммы — выполняются молниеносно. Arrow поддерживает отображение памяти, чтобы обращаться к данным на диске без полной загрузки в RAM. Основные преимущества:

  • Чтение без копирования: файлы отображаются в память напрямую, без переноса всего в RAM.
  • Быстрый доступ к колонкам: колоночная структура позволяет векторизованные операции.
  • Расширенные типы: работает с вложенными данными, списками, тензорами.
  • Совместимость: интегрируется с pandas, PyArrow, Spark, Polars и другими.

Итоги

Hugging Face Datasets позволяет легко менять форматы. Применяйте CSV для быстрых тестов, Parquet для хранения больших таблиц, Arrow для ускорения обучения в памяти. Понимание различий помогает держать пайплайн быстрым и простым, чтобы сосредоточиться на модели.

Горячее

Загружаем популярные статьи...