Spark в продуктовых стажировках
Spark в продуктовых стажировках
😏
когда идёшь на стажировку в data science/data engineer, ожидаешь, что основные задачи будут про метрики и графики, но на практике всё может быть чуть интереснее
в трекере стажёра может появиться тикет:
- подключи Spark
- почисти данные через Spark DataFrame
- обработай n-гигов логов на кластере
да,
Apache Spark
изначально создавался для обработки big data, но в продакт-аналитике и applied ML его используют всё чаще - и не только из-за объёмов данных
фреймворк одинаково устойчив и в локальной разработке, и в проде
это инструмент, который особенно помогает, когда объём и структура данных выходят за рамки привычного workflow на pandas
Где Spark действительно нужен
❓
перейдём к
прикладным кейсам
, где без Spark, мягко говоря, будет тяжеловато
нужно прогнать пайплайн по всем пользователям за последний год
пример простой агрегации. но когда ты загружаешь данные через pandas, они просто не помещаются в память, а скрипт начинает подвисать
другой пример:
необходимо подключиться к S3, достать сырые данные и провести очистку, одновременно нужно проанализировать логи
формат не .csv, а parquet + cтруктура хранилища - вложенная и запутанная, а папка с данными за один месяц весит много ГБ -> такой объём данных в pandas уже не разобрать
и тут на помощь приходит Spark
Какие типы задач чаще всего решают через Spark
в задачах ниже Spark действительно незаменим:
1️⃣
фичеинжиниринг: при построении признаков по пользовательскому поведению, сессиям, кликам и действиям часто нужны массовые агрегации, которые невозможно реализовать эффективно на одном узле
2️⃣
ETL-процессы: когда данные необходимо извлечь из внешнего хранилища, очистить, трансформировать и сохранить в нужном формате (parquet, delta, и т.д.)
3️⃣
обработка логов: особенно в крупных продуктах, где логи представлены в формате JSON, разбиты на тысячи файлов и хранятся в S3
4️⃣
сложные и неструктурированные датасеты: когда данные приходят фрагментированными, разными партиями, с неоднородными схемами и требуют гибкой предобработки
Что важно знать при первом знакомстве
по синтаксису Spark похож на pandas
операции вроде .select(), .filter(), .groupBy() работают почти аналогично
отличие -
ленивое выполнение
:
пока вы не вызовете .show() или .collect(), никаких реальных вычислений не произойдёт; это позволяет оптимизировать план выполнения, но требует другой логики мышления
Доп материалы:
хорошая шпаргалка по сравнению Pandas и Spark
PySpark for data science
разработка модели в PySpark ML
@zadachi_ds
Откликнуться в Telegram →
⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.