Перейти к инструменту
ViewCSV
Без загрузки на сервер

Конвертация CSV в Parquet

orders.csv· ПРИМЕР15 строк · 8 столбцов
Типы значений
Текстовые столбцы записываются как UTF-8 STRING. При распознавании типов столбцы INT64, DOUBLE и BOOLEAN получаются там, где им соответствуют все значения.
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041Мария ВолковСанкт-ПетербургNotebook A55145.752026-01-11pending
2001042Иван ВолковМоскваDesk lamp6108.802026-02-13pending
3001043Наталья ИвановСамараChair, ergonomic715.852026-03-21refunded
4001044Михаил КузнецовНижний НовгородCoffee beans 1kg685.332026-04-12pending
5001045Михаил МорозовОмскUSB-C cable7·2026-05-04paid
6001046Иван МорозовМоскваDesk lamp157.412026-06-18refunded
7001047 Мария Попов НовосибирскUSB-C cable7194.442026-07-15shipped
8001048Елена ПетровНовосибирскUSB-C cable4159.072026-08-02refunded
9001049Елена КузнецовОмскUSB-C cable3119.822026-09-22paid
10001050Елена НовиковСанкт-ПетербургDesk lamp839.582026-01-03shipped
11001051Михаил ФёдоровНижний НовгородNotebook A5824.522026-02-12paid
12001052Сергей СоколовКазаньChair, ergonomic875.432026-03-06paid
13001053Анна ФёдоровНижний НовгородNotebook A59149.132026-04-10shipped
14001054Анна СмирновЕкатеринбургNotebook A5218.092026-05-20refunded
15001043Наталья ИвановСамараChair, ergonomic715.852026-03-21refunded

15 строк · 1 файл Файл записывается в браузере библиотекой Parquet на JavaScript; ничего не загружается на сервер.

Откройте или вставьте CSV-файл и нажмите Скачать Parquet. По умолчанию каждый столбец — допускающий null STRING в UTF-8, поэтому идентификаторы вроде 000917 сохраняют нули, а пустые ячейки становятся null. Выберите Распознавать числа и true/false, чтобы записать столбцы INT64, DOUBLE и BOOLEAN там, где им соответствуют все значения. Файл записывается в вашем браузере библиотекой Parquet на JavaScript; ничего не загружается на сервер.

Как преобразовать CSV в Parquet

  1. Откройте файл .csv, .tsv или .txt, перетащите его на инструмент или вставьте строки. Проверьте таблицу на вкладке Исходные данные; при необходимости задайте разделитель, строку заголовков или кодировку в разделе Параметры импорта.
  2. Выберите Типы значений, Сжатие, решите, нужно ли Записывать пустой текст как null, и задайте Строк в группе строк (row group).
  3. Нажмите Скачать Parquet и читайте файл .parquet в DuckDB, pandas, Polars, Spark или любой другой программе для Parquet.

Чтобы преобразовать много файлов с одинаковыми настройками, выберите Пакетная конвертация нескольких файлов. Каждый файл становится отдельным файлом Parquet, и все они скачиваются вместе одним ZIP-архивом. В пакетном режиме каждый файл должен быть не больше 25 МБ.

Схема и типы столбцов

Имена столбцов берутся из строки заголовков ровно в том виде, как записаны. Пустой заголовок становится Column 3, повторяющийся — name (2), так что у каждого столбца Parquet уникальное имя. Все столбцы необязательные (допускают null).

Все значения как текстВариант по умолчанию. Каждый столбец — BYTE_ARRAY с аннотацией строки UTF-8 и хранит каждое значение байт в байт, включая ведущие нули, 1,5, N/A и любые форматы дат.
Целые числа (при распознавании)INT64, если каждое непустое значение — целое число без ведущих нулей в диапазоне от −9 007 199 254 740 991 до 9 007 199 254 740 991. Целые числа больше этого оставляют столбец текстовым.
Дробные числа (при распознавании)DOUBLE, если каждое значение — простая десятичная запись не больше чем с 15 значащими цифрами, которая переживёт конвертацию. Столбец, где смешаны 12 и 2.5, становится DOUBLE.
true / false (при распознавании)BOOLEAN, если каждое значение — true или false в любом регистре.
Даты и метки времениВ обоих режимах остаются STRING, например 2026-03-01T08:00:00Z. Приведите тип в своём движке запросов, например CAST(reading_at AS TIMESTAMP) в DuckDB.

В типизированных столбцах пустая ячейка всегда null. В строковых столбцах Записывать пустой текст как null (по умолчанию включено) определяет, станет ли пустая ячейка null или пустой строкой "".

Сжатие и группы строк

Snappy (быстро, обычный выбор)Кодек по умолчанию. Его поддерживают все распространённые программы для чтения Parquet.
Gzip (компактнее)Обычно файл получается меньше, чем со Snappy. В некоторых легковесных программах чтения поддержки gzip нет.
Без сжатияДанные не сжимаются — для отладки или для инструментов без распаковщика.
Строк в группе строк (row group)По умолчанию 100 000, от 1000 до 1 000 000. Рабочая область браузера вмещает до 100 000 строк, поэтому по умолчанию записывается одна группа строк; задайте меньшее значение, чтобы получить несколько групп, которые программы чтения могут пропускать или читать параллельно.

В метаданных файла также записываются программа записи (hyparquet) и ключ created_by_app.

Частые проблемы при конвертации CSV в Parquet

  • Числовой столбец получил тип STRING. Либо выбран вариант Все значения как текст, либо одно из значений не является простым числом — например, 1,234, 12 kg, 007, 16-значное дробное число или сумма с десятичной запятой. Найдите его в профиле столбцов или в просмотре CSV.
  • В другой программе идентификаторы потеряли ведущие нули. Этот конвертер никогда не делает числовым столбец с ведущими нулями. Если идентификаторы изменились, скорее всего, CSV перед конвертацией открыли и сохранили в электронной таблице; проверьте исходный файл в просмотре CSV.
  • Всё в одном столбце. Разделитель определён неверно; выберите его в разделе Параметры импорта.
  • Файл слишком большой для этого инструмента. Конвертация в Parquet работает с файлами до 25 МБ, 100 000 строк, 250 столбцов и 2 млн ячеек. Разделите CSV и конвертируйте части или, если нужен просто файл поменьше, сожмите CSV в gzip.

Ограничения и конфиденциальность

CSV должен открываться в рабочей области браузера: до 25 МБ, 100 000 строк, 250 столбцов и 2 млн ячеек. Файл Parquet строится в памяти за один проход.

Запись выполняет hyparquet-writer — библиотека на чистом JavaScript, которая загружается только при конвертации; ни WebAssembly, ни серверного шага нет. Она работает в фоновом обработчике в этой вкладке, поэтому страница не зависает, а кнопка Отмена останавливает работу. CSV никогда не отправляется на сервер. Если нужен файл базы данных, к которому можно делать запросы, воспользуйтесь CSV в SQLite.

Пример: показания датчиков, прочитанные обратно через PyArrow

Показания датчиков с идентификаторами, начинающимися с нуля, метками времени ISO, пустыми ячейками и запятой в кавычках, преобразованные с Распознавать числа и true/false и сжатием Snappy по умолчанию, а затем прочитанные обратно через PyArrow. temp_c стал DOUBLE, ok — BOOLEAN, а sensor_id и reading_at остались строками. С вариантом по умолчанию Все значения как текст все пять столбцов имеют тип string, а в ok остаётся TRUE, как записано.

CSV
sensor_id,reading_at,temp_c,ok,site
000917,2026-03-01T08:00:00Z,21.5,true,Lab 2
000918,2026-03-01T08:05:00Z,,false,
000919,2026-03-01T08:10:00Z,-3,TRUE,"Roof, north"
Parquet (прочитано через PyArrow)
schema:
  sensor_id: string
  reading_at: string
  temp_c: double
  ok: bool
  site: string
rows: 3, row groups: 1, compression: SNAPPY

{'sensor_id': '000917', 'reading_at': '2026-03-01T08:00:00Z', 'temp_c': 21.5, 'ok': True, 'site': 'Lab 2'}
{'sensor_id': '000918', 'reading_at': '2026-03-01T08:05:00Z', 'temp_c': None, 'ok': False, 'site': None}
{'sensor_id': '000919', 'reading_at': '2026-03-01T08:10:00Z', 'temp_c': -3.0, 'ok': True, 'site': 'Roof, north'}

Вопросы и ответы

Загружается ли мой CSV на сервер для конвертации?

Нет. Файл Parquet записывает библиотека на JavaScript в фоновом обработчике во вкладке вашего браузера, а скачиваемый файл создаётся локально.

Почему даты не записываются как DATE или TIMESTAMP Parquet?

Даты в CSV бывают в самых разных форматах и часовых поясах, и молчаливая догадка может сдвинуть значения. Поэтому они записываются строками ровно как в файле; приводите их к типу в DuckDB, Spark или pandas, где формат и часовой пояс выбираете вы.

Какое сжатие выбрать?

Snappy работает практически со всеми программами для чтения Parquet. Gzip выбирайте, когда размер файла важнее, а ваша программа его поддерживает, а вариант без сжатия — только для отладки.

Стандарты и справочные материалы