Комментарии 11
По существу- спасибо, не знал что даск умеет многоядерно.
Паркет скорее для компактного хранения, на 7 Гб немного жаба душит. Некоторые вещи типа машинных логов с редко меняющимися состояниями он ужимает совсем люто.
Про продакшн, и бд. Дисклеймкр про SQL в начале собственно о том и говорит. Если задача делать серьезно, то пандас на костылях тут совсем не к месту. Если надо быстро разворошить палочкой, окинуть взором и бежать к следующей не аналогичной задаче — то вполне сгодится.
Куда более примечательно, что даск парой строк можно превратить в распределенный кластер с клевым админским дашбордом. Это уже куда веселее
Вот небольшое демо от автора dask.distributed https://www.youtube.com/watch?v=N_GqzcuGLCY
1. создаём таблицу соответствующую формату нашего файла
CREATE TABLE test_csv (id INT NOT NULL, name VARCHAR(200) NOT NULL) ENGINE = CSV;
2. заменяем пустой файл в БД mysql
/var/lib/mysql/testdb/test_csv.csv
на наш
3. файл должен быть формата CSV, разделитель запятая, без заголовков. Т.е. что-то типа:
1,"Конфеты \"Мечта\""
2,"Товар 2"
.....
100000000,"Товар 100000000 \\ 123"
4.
FLUSH TABLE test_csv;
5. Используя всю мощь SQL пишем любые запросы
SELECT * FROM test_csv WHERE name LIKE '%name%'
6. При необходимости конвертим CSV таблицу в нормальную (но это уже конечно не быстро)
ALTER TABLE test_csv ENGINE = Innodb;
создаём необходимые индексы, радуемся жизни
Это пожалуй самый быстрый способ загрузки данных в MySQL, быстрее чем через LOAD DATA
Так то из паркета (не говоря уж о CSV) умеет читать Clickhouse, который в разы эффективнее справится с аналитическими запросами
Пандас и другие для толстых данных