Spark новичок здесь. Я попытался выполнить какое-то действие pandas на моем фрейме данных, используя Spark, и, на удивление, он медленнее, чем чистый Python (т. Е. Использует пакет pandas в Python). Вот что я сделал:Почему моя Spark работает медленнее, чем чистый Python? Сравнение производительности
1) В Спарк:
Она занимает около 30 секунд, чтобы получить результаты обратно. Но использование Python занимает около 1 секунды.
2) В Спарк:
sqlContext.sql("SELECT gender, count(*) FROM train GROUP BY gender").show()
То же самое, занимает около 30 сек в Спарк, 1 сек в Python.
несколько возможных причин моя искра гораздо медленнее, чем чистый Python:
1) Мой набор данных составляет около 220 000 записей, 24 МБ, и это не достаточно большой набор данных, чтобы показать преимущества масштабирования Спарк.
2) Моя искра работает локально, и я должен запускать ее в чем-то вроде Amazon EC.
3) Запуск локально в порядке, но моя вычислительная способность просто не режет его. Это 8-гигабайтный RAM 2015 Macbook.
4) Spark медленный, потому что я запускаю Python. Если я использую Scala, было бы намного лучше. (Кон. Аргумент: я слышал, что многие люди используют PySpark просто отлично.)
Какой из них, скорее всего, является причиной или самым правдоподобным объяснением? Мне бы хотелось услышать от экспертов Spark. Большое спасибо!!
Что-то не имеющее значения для этого вопроса: я попытался добавить «Привет всем» в начале сообщения, просто чтобы найти SO ignore он или автоматически удаляет его каждый раз. не уверен, что случилось. –
Использование 'pyspark' на самом деле не будет проблемой - процесс Spark все еще написан на Scala и как вы с ним взаимодействуете, это не влияет на то, что у него есть Java-сервер. Реальная проблема заключается в том, что ваши данные/вычисления недостаточно велики или достаточно значительны, чтобы преодолеть накладные расходы на координацию и задержку, введенную с помощью Spark (24 МБ данных все еще находятся в области локальных вычислений). Spark полезен для параллельной обработки, но вам нужно иметь достаточную работу/вычисление, чтобы «съесть» накладные расходы, которые предлагает Spark. – birryree