Хотя Pandas — простой в использовании и мощный инструмент, когда мы начинаем использовать большие наборы данных, мы видим, что Pandas может быть не лучшим решением.

Я провел сравнительный тест на своем MacBook 2015 года с двухъядерным процессором Intel Core i5 2,7 ГГц и 8 ГБ памяти DDR3 1867 МГц с Pandas, Koalas и PySpark. Согласно документации Koalas, Koalas реализует «API pandas DataFrame поверх Apache Spark». Согласно документации PySpark, «PySpark — это API Python для Spark».

Чтобы выполнить тест, вам необходимо установить PySpark и Koalas. Вам также необходимо установить Java JDK, если вы еще этого не сделали.

Импорт пакетов согласно ниже

Для нашего теста мы будем использовать all_stocks_5yr.csv от Kaggle:
https://www.kaggle.com/camnugent/sandp500

Давайте посмотрим на данные для разных пакетов. Следует отметить, что коалы имеют много функций, схожих с пандами, и даже выглядят как панды.

Чтобы провести тест производительности, мы собираемся сделать следующее:
1. Сгруппировать по
2. Объединить (Pandas и Koalas) / Объединить (PySpark) фрейм данных, чтобы сделать больший фрейм данных вдвое больше исходного размера.
3. Повторите 1 и 2 с большим фреймом данных

Наш фрейм данных из Kaggle содержит 619 040 строк. Мы установим, сколько раз мы хотим объединить наши данные с переменной «num_iter». В этом примере мы выполним concat 5 раз, что сделает наши сравнения более ресурсоемкими с каждой итерацией. См. код ниже для Pandas, Koalas и PySpark.

Фрейм данных результатов ниже.

Результаты группировки по показывают, что PySpark по всем направлениям оказался победителем. Мы видим, что при 19 809 280 строк скорость группировки PySpark в 153 раза выше, чем у Pandas(1,454501/ 0,009491). Интересно видеть, что Pandas превзошли Koalas, когда датафрейм был меньше.

Concat/Union показывает такие же результаты, что и PySpark по всем направлениям оказался победителем.

Я был бы в восторге, если бы увидел какие-либо другие результаты, которые люди получают от бенчмаркинга.

Код можно найти на моем GitHub по адресу: https://github.com/chrisrichgruber/pandas_koalas_pyspark.