PySpark vs pandas на собеседовании Data Engineer
Закрепи Python для аналитика
200+ задач по pandas, numpy и работе с данными — с разборами
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Сравнение
| pandas | PySpark | |
|---|---|---|
| Single machine | Yes | No (cluster) |
| Memory | Limited (RAM) | Distributed |
| Speed (small data) | Fast | Overhead |
| Speed (big data) | OOM / slow | Designed для |
| API | Mature | DataFrame API |
| Lazy | No (eager) | Yes |
| Custom Python ops | Native | UDF (slower) |
API differences
pandas:
df.groupby('country').agg({'amount': 'sum'})PySpark:
from pyspark.sql import functions as F
df.groupBy('country').agg(F.sum('amount').alias('total'))Similar but not identical. Function naming, lazy evaluation differences.
Pandas API on Spark
pyspark.pandas (был Koalas). Pandas-like API на Spark.
import pyspark.pandas as ps
psdf = ps.read_parquet('s3://...')
psdf.groupby('country').sum() # pandas-style!Mix migrate pandas code в Spark без learning new API.
Caveats. Не 100% pandas — some methods missing / different.
Закрепи Python для аналитика
200+ задач по pandas, numpy и работе с данными — с разборами
Polars
Modern alternative pandas. Rust-based, fast, lazy.
import polars as pl
df = pl.read_parquet('file.parquet')
df.lazy().group_by('country').agg(pl.col('amount').sum()).collect()Pros: 5-50× faster pandas. Native Rust.
Cons: less mature ecosystem.
DuckDB — similar, SQL-first.
Когда что
pandas.
- Data fits in RAM (< 10GB).
- Quick exploratory.
- Prototyping ML.
- Existing codebase.
PySpark.
- TB-scale data.
- Cluster available.
- Need distributed compute.
Polars.
- Single-machine, но fast performance critical.
- New projects.
DuckDB.
- Single-machine SQL над files.
- Embedded в apps.
Связанные темы
- Spark RDD vs DataFrame для DE
- Spark memory tuning для DE
- NumPy vectorization для DS
- Generators и iterators Python для DE
- Подготовка к собесу Data Engineer
FAQ
Это официальная информация?
Нет. Статья основана на документации Spark / pandas / Polars.
Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.