PySpark-скрипт отработал мгновенно и ничего не посчитал
Скрипт должен обработать 300 ГБ событий, но завершается за пару секунд, в Spark UI ни одной задачи, ошибок нет:
df = spark.read.parquet("s3a://raw/events/")
df2 = df.filter(F.col("event_type") == "purchase")
df3 = df2.withColumn("amount_rub", F.col("amount") * 90)
print("обработка завершена")
Почему так происходит?
- Каталог пуст или путь указан неверно: при корректном пути уже filter запустил бы вычисления, и задачи появились бы в Spark UI немедленно.
- Spark выполнил обработку в памяти драйвера и не показал её в UI, потому что после фильтра объём данных оказался мал и распределять было нечего.
- filter и withColumn — трансформации, они лишь достраивают план вычислений; работа начнётся только после действия (write, count, collect).
- Результат остался в кэше от предыдущего запуска, поэтому Spark переиспользовал готовые файлы и не создавал новых задач.
