Forwarded from Digital Dinner
This media is not supported in your browser
VIEW IN TELEGRAM
Хирург из Лондона провел операцию на банане в Калифорнии, по удаленке в сети 5G.
💦Что такое CDC-системы и зачем они нужны
Чтобы сократить объем данных, считываемых из корпоративного хранилища или озера, но всегда быть в курсе последних изменений, используется CDC-подход: захват измененных данных или Change Data Capture. Есть готовые инструменты CDC: Oracle Golden Gate, Qlik Replicate и HVR, лучше всего подходят для приема данных из часто обновляемых реляционных СУБД. Также инженеры данных создают собственные решения:
• вычисления CDC с использованием меток времени, маркирующих моменты создания, обновления и истечения срока действия в исходных таблицах. Любой процесс, который вставляет, обновляет или удаляет строку, должен также обновить соответствующий столбец отметки времени. Жесткое удаление не допускается. Недостаток этого способа в том, что необходимо переделать структуру базы данных, чтобы добавить столбец timestamp, а также необходимость тесной связи между исходной таблицей и кодом ETL-процесса.
• вычисления CDC с использованием отрицательного запроса, когда между источником и целевым приемником создается связь, и выполняется минус-запрос SQL для расчета журнала изменений. Этот способ скорее антипаттерн, т.к. работает только, если исходная и целевая базы данных относятся к одному типу, а еще он приводит к тому к увеличению перемещаемого объема данных.
Оба метода CDC, написанного вручную, вызывают значительную нагрузку на исходную базу данных. А специальные инструменты CDC сокращают нагрузку на сеть и источник, анализируя логи для расчета изменений. Однако, основным недостатком готовых CDC-решения является их высокая стоимость. Кроме того, администратор исходной СУБД должен предоставлять CDC-средству привилегированный доступ к журналу базы данных, что воспринимается не очень лояльно по соображениям безопасности.
https://towardsdatascience.com/change-data-capture-cdc-for-data-ingestion-ca81ff5934d2
Чтобы сократить объем данных, считываемых из корпоративного хранилища или озера, но всегда быть в курсе последних изменений, используется CDC-подход: захват измененных данных или Change Data Capture. Есть готовые инструменты CDC: Oracle Golden Gate, Qlik Replicate и HVR, лучше всего подходят для приема данных из часто обновляемых реляционных СУБД. Также инженеры данных создают собственные решения:
• вычисления CDC с использованием меток времени, маркирующих моменты создания, обновления и истечения срока действия в исходных таблицах. Любой процесс, который вставляет, обновляет или удаляет строку, должен также обновить соответствующий столбец отметки времени. Жесткое удаление не допускается. Недостаток этого способа в том, что необходимо переделать структуру базы данных, чтобы добавить столбец timestamp, а также необходимость тесной связи между исходной таблицей и кодом ETL-процесса.
• вычисления CDC с использованием отрицательного запроса, когда между источником и целевым приемником создается связь, и выполняется минус-запрос SQL для расчета журнала изменений. Этот способ скорее антипаттерн, т.к. работает только, если исходная и целевая базы данных относятся к одному типу, а еще он приводит к тому к увеличению перемещаемого объема данных.
Оба метода CDC, написанного вручную, вызывают значительную нагрузку на исходную базу данных. А специальные инструменты CDC сокращают нагрузку на сеть и источник, анализируя логи для расчета изменений. Однако, основным недостатком готовых CDC-решения является их высокая стоимость. Кроме того, администратор исходной СУБД должен предоставлять CDC-средству привилегированный доступ к журналу базы данных, что воспринимается не очень лояльно по соображениям безопасности.
https://towardsdatascience.com/change-data-capture-cdc-for-data-ingestion-ca81ff5934d2
Medium
Change Data Capture(CDC) for Data Lake Data Ingestion
Change Data Capture(CDC) tools can accelerate Data Lake adoption by enabling scalable and network efficient near-real-time data replication
💥Комбо Python и SQL в FugueSQL: единый SQL-интерфейс для датафреймов Pandas, Spark и Dask
FugueSQL - это открытая Python-библиотека, которая позволяет комбинировать Python-код с SQL-командами, переключаясь между ними в Jupyter Notebook или Python-скрипте. FugueSQL поддерживает распределенные вычисления и предоставляет унифицированный API для запуска одного и того же кода SQL в Pandas, Dask и Apache Spark.
В отличие от PandaSQL, который имеет единственный сервер SQLite, что приводит к большим накладным расходам при передаче данных между Pandas и базой данных, FugueSQL поддерживает несколько локальных бэкендов: pandas, DuckDB и SQLite.
При использовании pandas-бэкэнда Fugue напрямую переводит SQL в операции pandas, исключая передачу данных. DuckDB имеет превосходную поддержку pandas, поэтому накладные расходы на передачу данных незначительны. И Pandas, и DuckDB являются предпочтительными серверными модулями FugueSQL для локальной обработки данных. Fugue также поддерживает Spark, Dask и cuDF (через blazingSQL) в качестве бэкэндов.
В Fugue код SQL анализируется с помощью ANTLR и сопоставляется с эквивалентными функциями в API Fugue. FugueSQL имеет множество встроенных возможностей и расширяется с помощью Python-кода. По умолчанию он поддерживает наиболее распространенные на практике функции: заполнение значений NULL, удаление значений NULL, переименование столбцов, изменение схемы и пр. Fugue также добавляет некоторые улучшения в стандартный SQL, чтобы изящно обрабатывать сквозные рабочие процессы данных. Например, создание промежуточных таблиц через присвоение переменных.
В Pandas %% fsql принимает NativeExecutionEngine в качестве параметра по умолчанию. В Dask работа FugueSQL чуть медленнее нативного движка, но более полна с точки зрения реализованных ключевых слов SQL. FugueSQL также работает на Spark, сопоставляя операции %%fsql с операциями Spark и Spark SQL. Это позволяет быстро разрабатывать распределенные приложения. Достаточно создать локальный прототип с помощью NativeExecutionEngine, протестировать его и развернуть в кластере Spark, просто изменив механизм выполнения.
https://towardsdatascience.com/introducing-fuguesql-sql-for-pandas-spark-and-dask-dataframes-63d461a16b27
https://fugue-tutorials.readthedocs.io/tutorials/fugue_sql/index.html
FugueSQL - это открытая Python-библиотека, которая позволяет комбинировать Python-код с SQL-командами, переключаясь между ними в Jupyter Notebook или Python-скрипте. FugueSQL поддерживает распределенные вычисления и предоставляет унифицированный API для запуска одного и того же кода SQL в Pandas, Dask и Apache Spark.
В отличие от PandaSQL, который имеет единственный сервер SQLite, что приводит к большим накладным расходам при передаче данных между Pandas и базой данных, FugueSQL поддерживает несколько локальных бэкендов: pandas, DuckDB и SQLite.
При использовании pandas-бэкэнда Fugue напрямую переводит SQL в операции pandas, исключая передачу данных. DuckDB имеет превосходную поддержку pandas, поэтому накладные расходы на передачу данных незначительны. И Pandas, и DuckDB являются предпочтительными серверными модулями FugueSQL для локальной обработки данных. Fugue также поддерживает Spark, Dask и cuDF (через blazingSQL) в качестве бэкэндов.
В Fugue код SQL анализируется с помощью ANTLR и сопоставляется с эквивалентными функциями в API Fugue. FugueSQL имеет множество встроенных возможностей и расширяется с помощью Python-кода. По умолчанию он поддерживает наиболее распространенные на практике функции: заполнение значений NULL, удаление значений NULL, переименование столбцов, изменение схемы и пр. Fugue также добавляет некоторые улучшения в стандартный SQL, чтобы изящно обрабатывать сквозные рабочие процессы данных. Например, создание промежуточных таблиц через присвоение переменных.
В Pandas %% fsql принимает NativeExecutionEngine в качестве параметра по умолчанию. В Dask работа FugueSQL чуть медленнее нативного движка, но более полна с точки зрения реализованных ключевых слов SQL. FugueSQL также работает на Spark, сопоставляя операции %%fsql с операциями Spark и Spark SQL. Это позволяет быстро разрабатывать распределенные приложения. Достаточно создать локальный прототип с помощью NativeExecutionEngine, протестировать его и развернуть в кластере Spark, просто изменив механизм выполнения.
https://towardsdatascience.com/introducing-fuguesql-sql-for-pandas-spark-and-dask-dataframes-63d461a16b27
https://fugue-tutorials.readthedocs.io/tutorials/fugue_sql/index.html
Medium
Introducing FugueSQL — SQL for Pandas, Spark, and Dask DataFrames
An End-To-End SQL Interface for Data Science and Analytics
👻Что такое UMAP и зачем это Data Scientist’у
UMAP (Uniform Manifold Approximation and Projection) - это универсальный алгоритм обучения многообразию и уменьшения размерности. Он разработан для совместимости с scikit-learn, использует тот же API и может быть добавлен в конвейеры sklearn. Будучи стохастическим алгоритмом, UMAP использует рандомизацию для ускорения шагов аппроксимации и оптимизации. Это означает, что разные прогоны UMAP могут давать разные результаты. Хотя UMAP относительно стабилен, в идеале разница между прогонами должна быть относительно небольшой, но она есть. Чтобы гарантировать точное воспроизведение результатов, UMAP позволяет пользователю устанавливать случайное начальное состояние.
Начиная с версии 0.4 UMAP также поддерживает многопоточность для повышения производительности, а при оптимизации условия гонки между потоками допустимы на определенных этапах. Случайность в выходных данных UMAP для многопоточного случая зависит не только от входного случайного начального числа, но и от условий гонки между потоками во время оптимизации, что невозможно контролировать. Поэтому результаты многопоточного UMAP не могут быть воспроизведены явно.
UMAP можно использовать в качестве эффективного этапа предварительной обработки для повышения производительности кластеризации на основе плотности. Но UMAP, как и t-SNE, не сохраняет плотность полностью и может создавать ложные разрывы в кластерах. По сравнению с t-SNE, UMAP сохраняет более глобальную структуру, создавая более значимые кластеры. А благодаря поддержке произвольных размеров встраивания, UMAP позволяет работать с большими размерными пространствами.
Из-за активного использования метода ближайших соседей, для некоторых датасетов UMAP может чрезмерно потреблять память. Поможет установка параметра low_memory в значение True, чтобы переключиться на более медленный, но менее интенсивный подход к вычислению ближайших соседей. Также важно знать, что при запуске без случайного начального числа UMAP будет использовать параллельную реализацию NUMBA для многопоточной работы и использования ядер ЦП. По умолчанию он будет использовать столько ядер, сколько доступно. Ограничить количество потоков, используемых Numba, можно с помощью переменной среды NUMBA_NUM_THREADS. Также из-за особенностей Numba, UMAP не поддерживает 32-разрядную версию Windows.
Несмотря на некоторые недостатки, UMAP можно использовать в следующих случаях:
• разведочный анализ данных (EDA);
• интерактивная визуализация результатов анализа;
• обработка разреженных матриц;
• выявление вредоносных программ на основе поведенческих данных;
• предварительная обработка векторов фраз для кластеризации;
• предварительная обработка эмбеддингов изображений (Inception) для кластеризации.
https://github.com/lmcinnes/umap
https://umap-learn.readthedocs.io/en/latest/index.html
UMAP (Uniform Manifold Approximation and Projection) - это универсальный алгоритм обучения многообразию и уменьшения размерности. Он разработан для совместимости с scikit-learn, использует тот же API и может быть добавлен в конвейеры sklearn. Будучи стохастическим алгоритмом, UMAP использует рандомизацию для ускорения шагов аппроксимации и оптимизации. Это означает, что разные прогоны UMAP могут давать разные результаты. Хотя UMAP относительно стабилен, в идеале разница между прогонами должна быть относительно небольшой, но она есть. Чтобы гарантировать точное воспроизведение результатов, UMAP позволяет пользователю устанавливать случайное начальное состояние.
Начиная с версии 0.4 UMAP также поддерживает многопоточность для повышения производительности, а при оптимизации условия гонки между потоками допустимы на определенных этапах. Случайность в выходных данных UMAP для многопоточного случая зависит не только от входного случайного начального числа, но и от условий гонки между потоками во время оптимизации, что невозможно контролировать. Поэтому результаты многопоточного UMAP не могут быть воспроизведены явно.
UMAP можно использовать в качестве эффективного этапа предварительной обработки для повышения производительности кластеризации на основе плотности. Но UMAP, как и t-SNE, не сохраняет плотность полностью и может создавать ложные разрывы в кластерах. По сравнению с t-SNE, UMAP сохраняет более глобальную структуру, создавая более значимые кластеры. А благодаря поддержке произвольных размеров встраивания, UMAP позволяет работать с большими размерными пространствами.
Из-за активного использования метода ближайших соседей, для некоторых датасетов UMAP может чрезмерно потреблять память. Поможет установка параметра low_memory в значение True, чтобы переключиться на более медленный, но менее интенсивный подход к вычислению ближайших соседей. Также важно знать, что при запуске без случайного начального числа UMAP будет использовать параллельную реализацию NUMBA для многопоточной работы и использования ядер ЦП. По умолчанию он будет использовать столько ядер, сколько доступно. Ограничить количество потоков, используемых Numba, можно с помощью переменной среды NUMBA_NUM_THREADS. Также из-за особенностей Numba, UMAP не поддерживает 32-разрядную версию Windows.
Несмотря на некоторые недостатки, UMAP можно использовать в следующих случаях:
• разведочный анализ данных (EDA);
• интерактивная визуализация результатов анализа;
• обработка разреженных матриц;
• выявление вредоносных программ на основе поведенческих данных;
• предварительная обработка векторов фраз для кластеризации;
• предварительная обработка эмбеддингов изображений (Inception) для кластеризации.
https://github.com/lmcinnes/umap
https://umap-learn.readthedocs.io/en/latest/index.html
GitHub
GitHub - lmcinnes/umap: Uniform Manifold Approximation and Projection
Uniform Manifold Approximation and Projection. Contribute to lmcinnes/umap development by creating an account on GitHub.
🚀Ускоряем DS на больших данных: Pandas API прямо в Apache Spark
Популярный вычислительный фреймворк Apache Spark позволяет писать программы на Python, который знаком каждому DS-специалисту. Теперь PySpark включает pandas-библиотеку, которую можно импортировать всего одной строкой: import pyspark.pandas as ps.
Это дает следующие преимущества:
• снижает порог входа в Spark;
• унифицирует кодовую базу для небольших и больших данных, локальных машин и распределенных кластеров;
• ускоряет код Pandas.
Примечательно, что Pandas на Spark работает даже быстрее другого популярного Python-движка Dask.
https://spark.apache.org/docs/latest/api/python/user_guide/pandas_on_spark/index.html
https://towardsdatascience.com/run-pandas-as-fast-as-spark-f5eefe780c45
https://databricks.com/blog/2021/10/04/pandas-api-on-upcoming-apache-spark-3-2.html
Популярный вычислительный фреймворк Apache Spark позволяет писать программы на Python, который знаком каждому DS-специалисту. Теперь PySpark включает pandas-библиотеку, которую можно импортировать всего одной строкой: import pyspark.pandas as ps.
Это дает следующие преимущества:
• снижает порог входа в Spark;
• унифицирует кодовую базу для небольших и больших данных, локальных машин и распределенных кластеров;
• ускоряет код Pandas.
Примечательно, что Pandas на Spark работает даже быстрее другого популярного Python-движка Dask.
https://spark.apache.org/docs/latest/api/python/user_guide/pandas_on_spark/index.html
https://towardsdatascience.com/run-pandas-as-fast-as-spark-f5eefe780c45
https://databricks.com/blog/2021/10/04/pandas-api-on-upcoming-apache-spark-3-2.html
Medium
Run Pandas as Fast as Spark
Why the Pandas API on Spark is a total game changer
🚨 Серия митапов про Data Science в гео-данных, гео-сервисах, логистике, приложениях Smart City продолжается!
21 декабря в 19:00 МСК ждем всех на завершающей в этот год онлайн-встрече Citymobil Data Meetup!
🚀 В 2021 провели 4 митапа, привлекли 12 классных спикеров с огненными докладами:
Ксения Мензорова, Екатерина Колпакова, Николай Радчиков, Михаил Дьячков, Алексей Венжега, Алексей Кудинов, Максим Шаланкин, Сергей Свиридов, Даниил Тарарухин, Артем Солоухин, Андрей Критилин, Федор Лаврентьев.
🎁 Но на Новый год мы решили обойтись без сложных докладов, а сделать классный развлекательный формат: подвести итоги года в мире Data Science и Big Data, а также устроить викторину с подарками 🥳!
Регистрация для бесплатного участия: https://citymobil.timepad.ru/event/1870148/
Итоги года подведут:
🚕 Алексей Чернобровов (Ситимобил, Head of Data Science)
🆗 Андрей Кузнецов (Ok.ru, Data Scientist)
📹 Артур Кузин (SberDevices, Head of Computer Vision Platfrom)
⛓ Валерий Бабушкин (Blockchain.com, Head of Data Science)
☎️ Виктор Кантор (МТС, Директор центра Big Data)
🖼 Дмитрий Коробченко (NVIDIA, Senior Manager of AI)
Ведущие: Алексей Чернобровов и Анастасия Никулина!
21 декабря в 19:00 МСК ждем всех на завершающей в этот год онлайн-встрече Citymobil Data Meetup!
🚀 В 2021 провели 4 митапа, привлекли 12 классных спикеров с огненными докладами:
Ксения Мензорова, Екатерина Колпакова, Николай Радчиков, Михаил Дьячков, Алексей Венжега, Алексей Кудинов, Максим Шаланкин, Сергей Свиридов, Даниил Тарарухин, Артем Солоухин, Андрей Критилин, Федор Лаврентьев.
🎁 Но на Новый год мы решили обойтись без сложных докладов, а сделать классный развлекательный формат: подвести итоги года в мире Data Science и Big Data, а также устроить викторину с подарками 🥳!
Регистрация для бесплатного участия: https://citymobil.timepad.ru/event/1870148/
Итоги года подведут:
🚕 Алексей Чернобровов (Ситимобил, Head of Data Science)
🆗 Андрей Кузнецов (Ok.ru, Data Scientist)
📹 Артур Кузин (SberDevices, Head of Computer Vision Platfrom)
⛓ Валерий Бабушкин (Blockchain.com, Head of Data Science)
☎️ Виктор Кантор (МТС, Директор центра Big Data)
🖼 Дмитрий Коробченко (NVIDIA, Senior Manager of AI)
Ведущие: Алексей Чернобровов и Анастасия Никулина!
citymobil.timepad.ru
Citymobil Data Meetup / События на TimePad.ru
Ситимобил каждый месяц проводит митапы о применении Data science в городских и геосервисах, логистике и технологиях умных городов.
Сегодняшний митап пройдет на нашем YouTube-канале https://youtu.be/RXn5ERnhfaM
Сегодняшний митап пройдет на нашем YouTube-канале https://youtu.be/RXn5ERnhfaM
👑Продолжаем знакомиться с полезными DS-инструментами: встречайте Streamlit
Streamlit - это Python-библиотека с открытым исходным кодом, которая упрощает создание и публикацию красивых пользовательских веб-приложений для ML и DS. Создавайте и развертывайте мощные приложения всего за пару минут. Сравнение Streamlit с Dash похоже на сравнение Python с C#. Streamlit упрощает создание приложений для веб-данных в чистом коде Python, часто в несколько строк кода. Например, однострочные команды для отображения интерактивных визуальных элементов Plotly, Bokeh и Altair, Pandas DataFrames и пр. Streamlit поддерживается огромным open-source сообществом разработчиков: добавляйте собственные компоненты в библиотеку с помощью JavaScript. А облачное использование Streamlit открыто для всех: можно создать и разместить до трех приложений бесплатно.
https://streamlit.io/
Streamlit - это Python-библиотека с открытым исходным кодом, которая упрощает создание и публикацию красивых пользовательских веб-приложений для ML и DS. Создавайте и развертывайте мощные приложения всего за пару минут. Сравнение Streamlit с Dash похоже на сравнение Python с C#. Streamlit упрощает создание приложений для веб-данных в чистом коде Python, часто в несколько строк кода. Например, однострочные команды для отображения интерактивных визуальных элементов Plotly, Bokeh и Altair, Pandas DataFrames и пр. Streamlit поддерживается огромным open-source сообществом разработчиков: добавляйте собственные компоненты в библиотеку с помощью JavaScript. А облачное использование Streamlit открыто для всех: можно создать и разместить до трех приложений бесплатно.
https://streamlit.io/
streamlit.io
Streamlit • A faster way to build and share data apps
Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver interactive data apps – in only a few lines of code.
☀️Встречайте Gallia: новая библиотека для преобразования данных
Эта Scala-библиотека с поддержкой схемы пригодится для практического преобразования данных, включая ETL-процессы, разработка функций, HTTP-ответы и пр. Будучи отлично масштабируемой, она предназначена, чтобы заполнить пробел между Pandas и Spark SQL. Gallia пригодится тем, кто ценит мощную систему типов как в Scala, и тем, кому сложно понять слишком навороченные SQL-запросы. По сути, Gallia реализует парадигму единого окна для большинства или всех потребностей преобразования данных в одном приложении. Библиотека поддерживает все виды манипуляций с данными, от агрегаций до пивот-поворота таблиц, включая обработку отдельных и вложенных объектов, а не только коллекций. Для масштабирования Gallia отлично интегрируется со Spark RDD API.
https://cros-anthony.medium.com/gallia-a-library-for-data-transformation-3fafaaa2d8b9
https://github.com/galliaproject/gallia-core/blob/master/README.md
Эта Scala-библиотека с поддержкой схемы пригодится для практического преобразования данных, включая ETL-процессы, разработка функций, HTTP-ответы и пр. Будучи отлично масштабируемой, она предназначена, чтобы заполнить пробел между Pandas и Spark SQL. Gallia пригодится тем, кто ценит мощную систему типов как в Scala, и тем, кому сложно понять слишком навороченные SQL-запросы. По сути, Gallia реализует парадигму единого окна для большинства или всех потребностей преобразования данных в одном приложении. Библиотека поддерживает все виды манипуляций с данными, от агрегаций до пивот-поворота таблиц, включая обработку отдельных и вложенных объектов, а не только коллекций. Для масштабирования Gallia отлично интегрируется со Spark RDD API.
https://cros-anthony.medium.com/gallia-a-library-for-data-transformation-3fafaaa2d8b9
https://github.com/galliaproject/gallia-core/blob/master/README.md
Medium
Gallia: A Library for Data Transformation
A schema-aware Scala library for practical data transformation: ETL, feature engineering, HTTP responses, etc
Forwarded from Алексей Чернобровов
Сегодня ML – это не только разработка моделей. Data Scientist ведет непрерывный сбор и анализ статистики процессов машинного обучения, включая распределение значений метрик и показателей производительности модели. Это занимает много времени, поэтому появляются инструменты для автоматизированного исследования таких метаданных и особенностей инфраструктуры. Одним из них является автономный open-source пакет Aim. Он позволяет отслеживать множество ML-экспериментов и сравнивать их производительность в удобном GUI или программно через SDK. API предоставляет методы, чтобы запрашивать метаданные ML-прогонов для последующей автоматизации и дополнительного анализа. По сути, Aim реализует концепцию MLOps и является альтернативой популярным средствам этого стека: Tensorboard и MLFlow. Однако, по сравнению с ними Aim имеет следующие преимущества:
• В отличие от TensorBoard и MLFlow, в Aim можно группировать и агрегировать показатели обучения ML-модели, а также строить подзаголовки по гиперпараметрам и вводить собственные функции сравнения экспериентов;
• Aim работает быстрее TensorBoard и MlFlow. Aim может обрабатывать тысячи тренировочных прогонов с десятками экспериментов в каждом, причем как на бэкэнде, так и в GUI. В частности, пользовательский интерфейс Aim может обрабатывать несколько тысяч показателей одновременно с плавным шагом.
Пакет поддерживает интеграцию с PyTorch, Hugging Face, Keras, TensorFlow и XGBoost. Пока Aim доступен для Python 3.6+ на платформах Linux и MacOS. В ближайших планах разработчиков добавить интеграцию с Python-библиотеками Scikit-learn и plotly, IDE Google Colab и Jupyter Notebook, а также MLOps-инструментами Kubeflow, Streamlit, Raytune и Google MLMD. Еще ожидается поддержка резервного копирования в облачные хранилища AWS S3, Google Cloud Storage и Azure.
Попробовать Aim можно уже сейчас, скачав его с Github: https://github.com/aimhubio/aim.
Подробная документация: https://aimstack.readthedocs.io/en/latest/
• В отличие от TensorBoard и MLFlow, в Aim можно группировать и агрегировать показатели обучения ML-модели, а также строить подзаголовки по гиперпараметрам и вводить собственные функции сравнения экспериентов;
• Aim работает быстрее TensorBoard и MlFlow. Aim может обрабатывать тысячи тренировочных прогонов с десятками экспериментов в каждом, причем как на бэкэнде, так и в GUI. В частности, пользовательский интерфейс Aim может обрабатывать несколько тысяч показателей одновременно с плавным шагом.
Пакет поддерживает интеграцию с PyTorch, Hugging Face, Keras, TensorFlow и XGBoost. Пока Aim доступен для Python 3.6+ на платформах Linux и MacOS. В ближайших планах разработчиков добавить интеграцию с Python-библиотеками Scikit-learn и plotly, IDE Google Colab и Jupyter Notebook, а также MLOps-инструментами Kubeflow, Streamlit, Raytune и Google MLMD. Еще ожидается поддержка резервного копирования в облачные хранилища AWS S3, Google Cloud Storage и Azure.
Попробовать Aim можно уже сейчас, скачав его с Github: https://github.com/aimhubio/aim.
Подробная документация: https://aimstack.readthedocs.io/en/latest/
GitHub
GitHub - aimhubio/aim: Aim 💫 — An easy-to-use & supercharged open-source experiment tracker.
Aim 💫 — An easy-to-use & supercharged open-source experiment tracker. - aimhubio/aim
👻4 простых совета для эффективной дата-инженерии
Чтобы проекты дата-инженерии с сотнями артефактов, включая файлы зависимостей, задания, модульные тесты, shell-файлы и блокноты Jupyter, не превратились в хаос, соблюдайте следующие правила:
• управляйте зависимостями, например, через менеджер зависимостей типа Poetry
• помните про юнит-тесты - внедрение модульных тестов в проект убережет от неприятностей и улучшит качество кода
• разделяй и властвуй - храните все преобразования данных в отдельном модуле
• документируйте, чтобы помнить о коде и решаемой им бизнес-задаче самому и делиться знаниями с коллегами
https://blog.devgenius.io/keeping-your-data-pipelines-organized-fa387247d59e
Чтобы проекты дата-инженерии с сотнями артефактов, включая файлы зависимостей, задания, модульные тесты, shell-файлы и блокноты Jupyter, не превратились в хаос, соблюдайте следующие правила:
• управляйте зависимостями, например, через менеджер зависимостей типа Poetry
• помните про юнит-тесты - внедрение модульных тестов в проект убережет от неприятностей и улучшит качество кода
• разделяй и властвуй - храните все преобразования данных в отдельном модуле
• документируйте, чтобы помнить о коде и решаемой им бизнес-задаче самому и делиться знаниями с коллегами
https://blog.devgenius.io/keeping-your-data-pipelines-organized-fa387247d59e
Medium
Keeping Your Data Pipelines Organized
Presenting an easy to go Data Engineer project structure
👣AutoML и не только с PyCaret
PyCaret – AutoML-библиотека с открытым исходным кодом на Python и низкоуровневым подходом к автоматизации большинства MLOps-задач. В PyCaret есть специальные функции для анализа, развертывания и объединения моделей, которых нет во многих других ML-фреймворках. Она позволяет перейти от подготовки данных к развертыванию ML-модели за считанные минуты в выбранной пользователем среде разработки.
По сути, PyCaret – это Python-оболочка для нескольких библиотек и ML-фреймворков: scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray и пр. Простота PyCaret позволяет использовать его не только опытным DS-специалистам, но и обычным пользователям, которые умеют выполнять простые сложные аналитические задачи. Библиотека доступна для свободного скачивания и использования под лицензией MIT. Пакет содержит несколько модулей, функции в которых сгруппированы по основным сценариям использования: от простой классификации до NLP-задач и определения аномалий.
https://pycaret.org/
https://github.com/pycaret/pycaret
PyCaret – AutoML-библиотека с открытым исходным кодом на Python и низкоуровневым подходом к автоматизации большинства MLOps-задач. В PyCaret есть специальные функции для анализа, развертывания и объединения моделей, которых нет во многих других ML-фреймворках. Она позволяет перейти от подготовки данных к развертыванию ML-модели за считанные минуты в выбранной пользователем среде разработки.
По сути, PyCaret – это Python-оболочка для нескольких библиотек и ML-фреймворков: scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray и пр. Простота PyCaret позволяет использовать его не только опытным DS-специалистам, но и обычным пользователям, которые умеют выполнять простые сложные аналитические задачи. Библиотека доступна для свободного скачивания и использования под лицензией MIT. Пакет содержит несколько модулей, функции в которых сгруппированы по основным сценариям использования: от простой классификации до NLP-задач и определения аномалий.
https://pycaret.org/
https://github.com/pycaret/pycaret
PyCaret
Low-code ML for Python.
Специалисты Школы анализа данных Яндекса сделали настоящий подарок для начинающих ML- и Data-специалистов, выложив в открытый доступ онлайн-учебник по машинному обучению.
• как работают технологии, которыми пользуются миллионы людей;
• какие практические задачи решает ML и какие еще предстоит решить;
• какая теоретическая база необходима для работы, связанной с ML.
На все эти вопросы и отвечает онлайн-пособие, разъясняя как основные методы и алгоритмы машинного обучения, так и практические вопросы об их реализации и работе с данными.
Приступить можно прямо сейчас — с глав «Классические методы обучения с учителем» и «Оценка качества моделей». В будущем учебник пополнится новыми разделами.
• как работают технологии, которыми пользуются миллионы людей;
• какие практические задачи решает ML и какие еще предстоит решить;
• какая теоретическая база необходима для работы, связанной с ML.
На все эти вопросы и отвечает онлайн-пособие, разъясняя как основные методы и алгоритмы машинного обучения, так и практические вопросы об их реализации и работе с данными.
Приступить можно прямо сейчас — с глав «Классические методы обучения с учителем» и «Оценка качества моделей». В будущем учебник пополнится новыми разделами.
🐻❄️В преддверии Нового года ускоряем DS: встречайте Polars
Polars – быстрая библиотека подготовки данных к ML-моделированию для Python и Rust. Она в 15 раз быстрее Pandas, распараллеливая обработку датафреймов и запросов в памяти. Будучи написанным на Rust, Polars использует все ядра компьютера. Также библиотека оптимизирована под специфику процессов обработки данных и поддерживает Python. Богатый API позволяет не только работать с огромными объемами данных на этапе их предподготовки, но и строить рабочие конвейеры. Бенчмаркинговое сравнение показало, что Polars опережает не только Pandas, но и другие инструменты, включая популярные в Big Data вычислительные движки типа Apache Spark, Dask и пр.
Установить и попробовать Polars очень просто с помощью менеджера пакетов pip:
pip install polars
import polars as pl
https://www.pola.rs/
https://betterprogramming.pub/this-library-is-15-times-faster-than-pandas-7e49c0a17adc
Polars – быстрая библиотека подготовки данных к ML-моделированию для Python и Rust. Она в 15 раз быстрее Pandas, распараллеливая обработку датафреймов и запросов в памяти. Будучи написанным на Rust, Polars использует все ядра компьютера. Также библиотека оптимизирована под специфику процессов обработки данных и поддерживает Python. Богатый API позволяет не только работать с огромными объемами данных на этапе их предподготовки, но и строить рабочие конвейеры. Бенчмаркинговое сравнение показало, что Polars опережает не только Pandas, но и другие инструменты, включая популярные в Big Data вычислительные движки типа Apache Spark, Dask и пр.
Установить и попробовать Polars очень просто с помощью менеджера пакетов pip:
pip install polars
import polars as pl
https://www.pola.rs/
https://betterprogramming.pub/this-library-is-15-times-faster-than-pandas-7e49c0a17adc
Forwarded from Deep Dive 2 Deep Learning
🔥Онлайн-встреча для CV-специалистов: про DL и не только на площадке Яндекса. 28 декабря с 12:00 до 17:30 (GMT+3).
Бесплатно, но нужна регистрация https://events.yandex.ru/events/christmas-colloquium-on-cv-2021
Бесплатно, но нужна регистрация https://events.yandex.ru/events/christmas-colloquium-on-cv-2021
Седьмой рождественский коллоквиум по компьютерному зрению
Рождественский коллоквиум — ежегодное мероприятие, на котором выступают молодые исследователи ведущих лабораторий России и мира. Коллоквиум пройдет в онлайн формате 28 декабря с 12:00 до 17:30.
🚀Ускоряем scikit learn: новое расширение старой доброй Python-библиотеки для DS
Популярная Python-библиотека Scikit-learn знакома каждому Data Scientist’у. У нее много достоинств, но в отличие от мощных ML-фреймворков PyTorch и TensorFlow, Scikit-learn не позволяет быстро обучать модели на графических процессорах. Этот недостаток устраняет sklearnex (Extension for Scikit-learn) – расширение Sci-Kit Learn от корпорации Intel®. Sklearnex - это бесплатный программный AI-модуль, который обеспечивает ускорение в 10–100 раз для различных приложений. Он полностью поддерживает все API и алгоритмы Scikit-Learn, ускоряя код за счет замены стандартных алгоритмов их оптимизированными версиями. Расширение поддерживает Python 3.6 и новее, а установить его можно с помощью типовых менеджеров пакетов pip или conda:
pip install scikit-learn-intelex
conda install scikit-learn-intelex -c conda-forge
https://intel.github.io/scikit-learn-intelex/
https://medium.com/@vamsik23/boost-sklearn-using-intels-sklearnex-cf2669f425bd
Популярная Python-библиотека Scikit-learn знакома каждому Data Scientist’у. У нее много достоинств, но в отличие от мощных ML-фреймворков PyTorch и TensorFlow, Scikit-learn не позволяет быстро обучать модели на графических процессорах. Этот недостаток устраняет sklearnex (Extension for Scikit-learn) – расширение Sci-Kit Learn от корпорации Intel®. Sklearnex - это бесплатный программный AI-модуль, который обеспечивает ускорение в 10–100 раз для различных приложений. Он полностью поддерживает все API и алгоритмы Scikit-Learn, ускоряя код за счет замены стандартных алгоритмов их оптимизированными версиями. Расширение поддерживает Python 3.6 и новее, а установить его можно с помощью типовых менеджеров пакетов pip или conda:
pip install scikit-learn-intelex
conda install scikit-learn-intelex -c conda-forge
https://intel.github.io/scikit-learn-intelex/
https://medium.com/@vamsik23/boost-sklearn-using-intels-sklearnex-cf2669f425bd
Medium
Speed up sklearn model training
Sci-Kit Learn is a machine learning library for Python. This library contains ML tools which are required for the daily usage of data…
Forwarded from Алексей Чернобровов
🔝TOP-25 International Data Science events 2022:
1. WAICF - World Artificial Intelligence Cannes Festival https://worldaicannes.com/ February 10-12, Cannes, France
2. Deep and Reinforcement Learning Summit https://www.re-work.co/events/deep-learning-summit-2022 February 17-18, San Francisco, USA
3. Reinforce https://reinforceconf.com/ March 8-10, Budapest, Hungary
4. MLconf https://mlconf.com/event/mlconf-nyc/ March 31, New York City, USA
5. Open Data Science Conference EAST https://odsc.com/boston/ April 19-21, Boston, USA
6. ICLR - International Conference on Learning Representations https://iclr.cc/ April 25–29, online
7. SDM - SIAM International Conference on Data Mining https://www.siam.org/conferences/cm/conference/sdm22 April 28–30, Westin Alexandria Old Town, Virginia, USA
8. World Summit AI Americas https://americas.worldsummit.ai/ May 4-5, Montreal, Canada
9. The Data Science Conference https://www.thedatascienceconference.com/ May 12-13, Chicago, USA
10. World Data Summit https://worlddatasummit.com/ May 18-22, Amsterdam, The Netherlands
11. Machine Learning Prague https://mlprague.com/ May 27-29, Prague, Czech Republic
12. The AI Summit London https://london.theaisummit.com/ June 15-16, London, UK
13. Machine Learning Week https://www.predictiveanalyticsworld.com/machinelearningweek/ June 19-24, Las Vegas, USA
14. Enterprise AI Summit https://www.re-work.co/events/enterprise-ai-summit-berlin-2022 June 29–30, Berlin, Germany
15. DELTA - International Conference on Deep Learning Theory and Applications https://delta.scitevents.org/ July 12-14, Lisbon, Portugal
16. ICML - International Conference on Machine Learning https://icml.cc/ July 17-23, online
17. KDD - Knowledge Discovery and Data Mining https://kdd.org/kdd2022/ August 14-18, Washington, DC, USA
18. Open Data Science Conference APAC https://odsc.com/apac/ September 7-8, online
19. RecSys – ACM Conference on Recommender Systems https://recsys.acm.org/recsys22/ September 18-23, Seattle, USA
20. INTERSPEECH https://interspeech2022.org/ September 18-22, Incheon, Korea
21. BIG DATA CONFERENCE EUROPE https://bigdataconference.eu/ November 21-24, Vilnius, Lithuania
22. EMNLP - Conference on Empirical Methods in Natural Language Processing https://2021.emnlp.org/ November, TBA
23. Data Science Conference https://datasciconference.com/ November, Belgrade, Serbia
24. Data Science Summit http://dssconf.pl/ December, Warsaw, Poland
25. NeurIPS https://nips.cc/ December, TBA
1. WAICF - World Artificial Intelligence Cannes Festival https://worldaicannes.com/ February 10-12, Cannes, France
2. Deep and Reinforcement Learning Summit https://www.re-work.co/events/deep-learning-summit-2022 February 17-18, San Francisco, USA
3. Reinforce https://reinforceconf.com/ March 8-10, Budapest, Hungary
4. MLconf https://mlconf.com/event/mlconf-nyc/ March 31, New York City, USA
5. Open Data Science Conference EAST https://odsc.com/boston/ April 19-21, Boston, USA
6. ICLR - International Conference on Learning Representations https://iclr.cc/ April 25–29, online
7. SDM - SIAM International Conference on Data Mining https://www.siam.org/conferences/cm/conference/sdm22 April 28–30, Westin Alexandria Old Town, Virginia, USA
8. World Summit AI Americas https://americas.worldsummit.ai/ May 4-5, Montreal, Canada
9. The Data Science Conference https://www.thedatascienceconference.com/ May 12-13, Chicago, USA
10. World Data Summit https://worlddatasummit.com/ May 18-22, Amsterdam, The Netherlands
11. Machine Learning Prague https://mlprague.com/ May 27-29, Prague, Czech Republic
12. The AI Summit London https://london.theaisummit.com/ June 15-16, London, UK
13. Machine Learning Week https://www.predictiveanalyticsworld.com/machinelearningweek/ June 19-24, Las Vegas, USA
14. Enterprise AI Summit https://www.re-work.co/events/enterprise-ai-summit-berlin-2022 June 29–30, Berlin, Germany
15. DELTA - International Conference on Deep Learning Theory and Applications https://delta.scitevents.org/ July 12-14, Lisbon, Portugal
16. ICML - International Conference on Machine Learning https://icml.cc/ July 17-23, online
17. KDD - Knowledge Discovery and Data Mining https://kdd.org/kdd2022/ August 14-18, Washington, DC, USA
18. Open Data Science Conference APAC https://odsc.com/apac/ September 7-8, online
19. RecSys – ACM Conference on Recommender Systems https://recsys.acm.org/recsys22/ September 18-23, Seattle, USA
20. INTERSPEECH https://interspeech2022.org/ September 18-22, Incheon, Korea
21. BIG DATA CONFERENCE EUROPE https://bigdataconference.eu/ November 21-24, Vilnius, Lithuania
22. EMNLP - Conference on Empirical Methods in Natural Language Processing https://2021.emnlp.org/ November, TBA
23. Data Science Conference https://datasciconference.com/ November, Belgrade, Serbia
24. Data Science Summit http://dssconf.pl/ December, Warsaw, Poland
25. NeurIPS https://nips.cc/ December, TBA
🏂Как выбрать меру валидации ML-моделей: подход Яндекса
В каждой практической задаче машинного обучения есть проблема с измерением результатов. Разные меры могут привести к разным результатам оценки и, следовательно, к разным выбранным алгоритмам. Поэтому найти подходящую меру качества очень важно. Исследователи из Яндекса сравнивают различные подходы к решению типовых ML-задач, от классификации до кластеризации, чтобы сформулировать универсальный метод выбора наиболее оптимальной меры качества. Ключевые тезисы и основные результаты изложены в статьях на конференциях В недавних статьях, опубликованных на ICML 2021 и NeurIPS 2021, а краткий пересказ доступен прямо на сайте Яндекса https://research.yandex.com/news/how-to-validate-validation-measures.
http://proceedings.mlr.press/v139/gosgens21a/gosgens21a.pdf
https://papers.nips.cc/paper/2021/file/8e489b4966fe8f703b5be647f1cbae63-Paper.pdf
В каждой практической задаче машинного обучения есть проблема с измерением результатов. Разные меры могут привести к разным результатам оценки и, следовательно, к разным выбранным алгоритмам. Поэтому найти подходящую меру качества очень важно. Исследователи из Яндекса сравнивают различные подходы к решению типовых ML-задач, от классификации до кластеризации, чтобы сформулировать универсальный метод выбора наиболее оптимальной меры качества. Ключевые тезисы и основные результаты изложены в статьях на конференциях В недавних статьях, опубликованных на ICML 2021 и NeurIPS 2021, а краткий пересказ доступен прямо на сайте Яндекса https://research.yandex.com/news/how-to-validate-validation-measures.
http://proceedings.mlr.press/v139/gosgens21a/gosgens21a.pdf
https://papers.nips.cc/paper/2021/file/8e489b4966fe8f703b5be647f1cbae63-Paper.pdf
Forwarded from Аналитика больших данных (Very Big Anal)
Zee - это картина, которая написана на Javascript посредством полностью сгенерированного кода, который написал художник Лукас С. Ривил. Одна функция генерирует волны, другая облака, третья чаек и так далее. В каждой функции используются случайные числа, результат предсказуем, но до конца неизвестен.
😎Как читать таблицы из PDF: tabula-py
Иногда исходные данные для анализа хранятся в pdf-документах. Чтобы автоматически извлечь данные из этого формата сразу в датафрейм, попробуйте tabula-py. Это простая Python-оболочка для tabula-java, которая может читать таблицы PDF и конвертировать в датафрейм pandas, а также файлы CSV/TSV/JSON.
Просто сначала установите ее через менеджер пакетов pip: pip install tabula-py
А затем импортируйте в свой Python-скрипт:
import tabula as tb
И можно пользоваться:
file='DataFile.pdf'
data = tb.read_pdf(file, pages = '12')
df = pd.DataFrame(data)
Примеры на английском языке: https://medium.com/codestorm/how-to-read-and-scrape-data-from-pdf-file-using-python-2f2a2fe73ae7
Русскоязычные примеры: https://nuancesprog.ru/p/13614/
Документация: https://tabula-py.readthedocs.io/en/latest/
Иногда исходные данные для анализа хранятся в pdf-документах. Чтобы автоматически извлечь данные из этого формата сразу в датафрейм, попробуйте tabula-py. Это простая Python-оболочка для tabula-java, которая может читать таблицы PDF и конвертировать в датафрейм pandas, а также файлы CSV/TSV/JSON.
Просто сначала установите ее через менеджер пакетов pip: pip install tabula-py
А затем импортируйте в свой Python-скрипт:
import tabula as tb
И можно пользоваться:
file='DataFile.pdf'
data = tb.read_pdf(file, pages = '12')
df = pd.DataFrame(data)
Примеры на английском языке: https://medium.com/codestorm/how-to-read-and-scrape-data-from-pdf-file-using-python-2f2a2fe73ae7
Русскоязычные примеры: https://nuancesprog.ru/p/13614/
Документация: https://tabula-py.readthedocs.io/en/latest/
Medium
How to Read and Scrape Data From PDF File Using Python
In this post, I will show you how to read and scrape data from PDF File using Python.
💥5 главных трендов инженерии данных в 2022 году: исследование Astronomer
Компания Astronomer, которая занимается коммерциализацией и продвижением популярного инструмента автоматизации пакетных процессов работы с данными, Apache AirFlow, подготовила провела ряд интервью с экспертами в области дата-инженерии, чтобы выявить наиболее актуальные тенденции в этой ИТ-области. Ключевые направления наступившего года:
• Происхождение и обеспечение качества данных (data lineage, data provenance и Data Quality)
• Децентрализация данных по разным контекстам и командам, но в рамках единой согласованной инфраструктуры с централизацией ресурсов
• Консолидация инструментов работы с данными, включая оркестровку конвейеров обработки
• Сетки данных (Data Mesh), устраняющие разрозненность между командами обработки через соединение используемых платформ
• взаимная интеграция DataOps, MLOps, AIOps для более эффективного и быстрого использования согласованных друг с другом данных и инструментов бесшовной работы с ними.
https://www.astronomer.io/blog/top-data-management-trends-2022
Компания Astronomer, которая занимается коммерциализацией и продвижением популярного инструмента автоматизации пакетных процессов работы с данными, Apache AirFlow, подготовила провела ряд интервью с экспертами в области дата-инженерии, чтобы выявить наиболее актуальные тенденции в этой ИТ-области. Ключевые направления наступившего года:
• Происхождение и обеспечение качества данных (data lineage, data provenance и Data Quality)
• Децентрализация данных по разным контекстам и командам, но в рамках единой согласованной инфраструктуры с централизацией ресурсов
• Консолидация инструментов работы с данными, включая оркестровку конвейеров обработки
• Сетки данных (Data Mesh), устраняющие разрозненность между командами обработки через соединение используемых платформ
• взаимная интеграция DataOps, MLOps, AIOps для более эффективного и быстрого использования согласованных друг с другом данных и инструментов бесшовной работы с ними.
https://www.astronomer.io/blog/top-data-management-trends-2022
www.astronomer.io
What Are the Top Data Management Trends for 2022?
Learn about emerging trends that are revolutionizing the world of data from the leading Apache Airflow® experts. See how to efficiently manage data in 2022.
🗣SQL-запросы к CSV-файлу с csvkit
csvkit — это набор инструментов командной строки для преобразования и работы с CSV-файлами. Эта утилита позволяет на простом Python выполнить следующие операции:
• Преобразовать файлы Excel и JSON в CSV
• Отобразить только имена столбцов
• Нарезать данные
• изменить порядок столбцов
• найти строки с совпадающими ячейками
• преобразовать CSV в JSON
• генерировать сводную статистику
• обратиться к CSV с помощью SQL-запросов
• импортировать данные в базы данных и извлекать из них
• выполнить парсинг данных CSV
• поработать с разделителями столбцов
Установить csvkit поможет менеджер пакетов pip: pip install csvkit
А синтаксис обращения к CSV-файлу через SQL-запрос в командной строке будет выглядеть так:
csvsql --query "SQL Query Here -- source file name as table name (without .CSV)" source_filename > target_filename
Чтобы использовать это в своем Python-скрипте следует
1) сперва импортировать CSVSQL из утилиты csvkit
from csvkit.utilities.csvsql import CSVSQL
2) далее определить аргументы как список значений, например:
args = ['--query','select distinct manufacturer from playground','payground.csv']
3) затем вызвать CSVSQL с аргументами
result = CSVSQL(args)
3) наконец, можно показать результаты
print(result.main())
https://csvkit.readthedocs.io/en/latest/index.html
https://medium.com/data-engineering-ramstkp/sql-queries-on-csv-using-python-24a472fe53b1
csvkit — это набор инструментов командной строки для преобразования и работы с CSV-файлами. Эта утилита позволяет на простом Python выполнить следующие операции:
• Преобразовать файлы Excel и JSON в CSV
• Отобразить только имена столбцов
• Нарезать данные
• изменить порядок столбцов
• найти строки с совпадающими ячейками
• преобразовать CSV в JSON
• генерировать сводную статистику
• обратиться к CSV с помощью SQL-запросов
• импортировать данные в базы данных и извлекать из них
• выполнить парсинг данных CSV
• поработать с разделителями столбцов
Установить csvkit поможет менеджер пакетов pip: pip install csvkit
А синтаксис обращения к CSV-файлу через SQL-запрос в командной строке будет выглядеть так:
csvsql --query "SQL Query Here -- source file name as table name (without .CSV)" source_filename > target_filename
Чтобы использовать это в своем Python-скрипте следует
1) сперва импортировать CSVSQL из утилиты csvkit
from csvkit.utilities.csvsql import CSVSQL
2) далее определить аргументы как список значений, например:
args = ['--query','select distinct manufacturer from playground','payground.csv']
3) затем вызвать CSVSQL с аргументами
result = CSVSQL(args)
3) наконец, можно показать результаты
print(result.main())
https://csvkit.readthedocs.io/en/latest/index.html
https://medium.com/data-engineering-ramstkp/sql-queries-on-csv-using-python-24a472fe53b1
Medium
SQL Queries on CSV Using Python
Python’s smart way of firing SQL queries on CSV files directly (In memory)