Ответ 1
Так как:
- Apache Spark - это сложная структура, предназначенная для распределения обработки по сотням узлов, обеспечивая при этом правильность и отказоустойчивость. Каждое из этих свойств имеет значительную стоимость.
- Потому что чисто внутренняя обработка (Pandas) в памяти на порядок быстрее, чем дисковый и сетевой (даже локальный) I/O (Spark).
- Поскольку параллелизм (и распределенная обработка) значительно увеличивает накладные расходы, и даже с оптимальной (смущающей параллельной нагрузкой) не гарантирует каких-либо улучшений производительности.
- Потому что локальный режим не предназначен для повышения производительности. Он используется для тестирования.
- И последнее, но не менее важное: 2 ядра, работающие на 393 МБ, недостаточно, чтобы увидеть какие-либо улучшения производительности, а один узел не предоставляет возможности для распространения
- Также Spark: несогласованный номер производительности при масштабировании числа ядер. Почему pyspark настолько медленнее обнаруживает максимальное количество столбцов? Почему моя Spark работает медленнее, чем чистый Python? Сравнение производительности
Вы можете так долго продолжать...