Насколько быстро Python может обработать 1 миллиард строк данных?
Doug Mercer
0:00 / 0:00
Насколько быстро Python может обработать 1 миллиард строк данных?
284 194 просмотра · 2 года назад
Doug Mercer
14,9 тыс. подписчиков
284 194 просмотра · 2 года назад
Чтобы бесплатно попробовать все предложения Brilliant в течение целых 30 дней, посетите сайт https://brilliant.org/DougMercer.
Вы также получите скидку 20% на годовую премиум-подписку.
—————————————————————————————————
Запишитесь на индивидуальное обучение на сайте https://dougmercer.dev
——————————————————————————————————
Задание «1 миллиард строк» — это увлекательное испытание, в котором вы сможете проверить, насколько быстро можно обработать большой текстовый файл и вычислить сводную статистику. Сообщество программистов разработало несколько удивительно умных решений.
В этом видео я расскажу о некоторых из лучших стратегий написания высокопроизводительного кода на Python. Я начну с простейшего подхода и постепенно перейду к JIT-компиляции, многопроцессорной обработке и отображению памяти. В итоге у меня получилась реализация на чистом Python, которая всего на порядок медленнее, чем высокооптимизированный победитель конкурса Java.
Кроме того, я показываю два гораздо более простых, но столь же производительных решения, использующих библиотеку Polars DataFrame и DuckDB (SQL-базу данных в памяти). На практике стоит использовать именно их, поскольку они невероятно быстрые и простые в использовании.
Если вы хотите попробовать ещё больше ускорить процесс, код можно найти здесь: https://github.com/dougmercer-yt/1brc.
Ссылки
------------------
Главная задача - https://github.com/gunnarmorling/1brc
Ifnesi - https://github.com/ifnesi/1brc/tree/main
Booty - https://github.com/booty/ruby-1-billion/
Решение Дэнни ван Кутена на языке C, запись в блоге - https://www.dannyvankooten.com/blog/2...
Отличная запись в блоге о DuckDB - https://rmoff.net/2024/01/03/1%EF%B8%...
Дуэль pypy против Cpython, запись в блоге - https://jszafran.dev/posts/how-pypy-i...
Главы
----------------
0:00 Вступление
1:09 Начнём с простого
2:55 Постараемся ускориться
10:48 Сторонние библиотеки
13:17 А как насчёт Java или C?
14:17 Спонсор
16:04 Заключение
Музыка
----------
"4" от HOME, выпущено по лицензии CC BY 3.0 DEED, https://home96.bandcamp.com/album/res...
Купите их музыку!
Раскрытие информации
-----------------
Это видео спонсировано Brilliant.
#python #datascience #pypy #polars #duckdb #1brc