Koalas - Pandas для Spark
Синтаксис Spark не схож с Pandas, поэтому пользователю тяжело переключится с одного на другое. Для примера, с помощью Pandas и PySpark создадим из csv-файла DataFrame, в который добавим новую колонку ‘x2’ со значениями из колонки x во второй степени.
Pandas:
PySpark:
Синтаксис PySpark интуитивно менее понятен, чем Pandas, в связи с чем у аналитика данных возникают сложности в использовании инструментов PySpark. Овладение ими занимает определенное время, что в условиях сжатых сроков выполнения задач, может быть критично.
На помощь приходит библиотека Koalas, которая для версий Spark 3.1 и ниже является отдельной, но начиная с 3.2 уже включена в PySpark из коробки.
В данной статье постараюсь ответить на вопрос: а так ли мягки коалы на ощупь, как и панды?
Для начала импортируем необходимые библиотеки:
Создадим последовательность из списка значений и разрешим создать стандартный индекс:
Получаем результат:
Теперь создадим словарь объектов, которые могут быть преобразованы в последовательность:
Результат:
Создадим DataFrame (DF), используя numpy массив с индексами из дат и названными колонками.
В результате получим таблицу такого вида:
Следующим шагом конвертируем Pandas DF в Koalas DF.
И получаем идентичный результат:
Также возможно преобразование Spark DF в Koalas DF, что и разберем ниже.
Создадим Spark DF из Pandas DF:
Результат:
А теперь создадим Koalas DF:
Результат аналогичный предыдущему:
Как создавать DF мы поняли. Теперь разберемся как данные просматривать. Рассмотрим основные команды и как они работают.
Describe показывает краткую статистику данных:
Сортировка:
Любой человек, знакомый с Pandas, может сказать: «И что тут сложного? Обычные примеры использования библиотеки, похожей на Pandas». Но я напомню, что все эти действия происходят на Spark, что решает проблему масштабируемости обработки данных и обеспечивает “мягкий вход” аналитиков в Spark.