В прошлом уроке мы решили, что сырые данные «Гонца» лягут в озеро файлами. Каким форматом? Три человека просят три разных. Отто хочет открыть заказы в Excel. Партнёрская служба аналитики хочет JSON. А data scientist просит Parquet и говорит, что иначе его модель будет читать GPS-точки до утра. У каждого своя правда, разберёмся какая.
Список, анкеты и картотека
Представь, что тебе надо передать данные о заказах на бумаге. Есть три способа.
Список. Каждый заказ одной строкой через запятую: 31240,4,39,delivered,167. Коротко, и любой прочтёт. Но что значит 4? Номер зоны, этаж, количество? Подсказка есть только в первой строке-шапке. А 167 это число или текст «сто шестьдесят семь»? Бумага не знает.
Анкеты. На каждый заказ отдельный листок, где каждое поле подписано: «номер: 31240, зона: 4, курьер: 39». Ничего не перепутаешь, можно вложить в анкету список блюд. Зато подписи повторяются на каждом листке, и бумаги уходит в два раза больше.
Картотека по столбцам. Все номера зон на одной карточке, все цены на другой, все курьеры на третьей. Чтобы посчитать выручку, достаточно взять одну карточку с ценами, остальные не трогать. А повторяющиеся значения удобно записать коротко: «зона 4, сорок раз подряд».
Это CSV, JSON и Parquet.
CSV
CSV это текст: строка на запись, значения через запятую.
id,zone_id,courier_id,status,distance_km,price_rub,created_at,delivered_at
31240,4,39,delivered,0.9,167.00,2026-06-01 09:01:34,2026-06-01 04:13:36+00
31263,12,,cancelled,5.2,253.00,2026-06-01 11:21:54,
CSV открывает Excel, читает любой язык и понимает человек. Поэтому это главный формат обмена с людьми и с партнёрами.
Но в CSV нет типов. 167.00 и 2026-06-01 09:01:34 это просто текст, а что это число и дата, угадывает тот, кто читает. Угадывает по-разному: Excel с русскими настройками ждёт десятичную запятую и превращает 1.5 в дату 1 мая, а pandas читает колонку курьеров с пропусками как дробную, и курьер 39 становится 39.0. Пустое значение тоже неоднозначно: это NULL, пустая строка или ноль? И если в адресе клиента встретилась запятая, всю строку надо брать в кавычки, иначе колонки съедут.
урок из курса
Урок из курса «Data Engineering». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.