Я довольно новичок в Spark, в настоящее время изучая его, играя с pyspark и искровой оболочкой.Python vs Scala (для Spark jobs)
Итак, вот ситуация, я запускаю ту же самую искру с помощью pyspark и spark-shell.
Это из pyspark:
textfile = sc.textFile('/var/log_samples/mini_log_2')
textfile.count()
И это одна из искрового оболочки:
textfile = sc.textFile("file:///var/log_samples/mini_log_2")
textfile.count()
Я попробовал оба из них несколько раз, первый (Python) один занимает 30-35 секунд, чтобы полный, а второй (scala) занимает около 15 секунд. Мне интересно, что может привести к разным результатам? Это из-за выбора языка или искровой оболочки сделать что-то в фоновом режиме, что pyspark нет?
UPDATE
Так что я сделал несколько тестов на больших наборах данных, около 550 Гб (Молнии) в общей сложности. Я использую Spark Standalone в качестве мастера.
Я заметил, что при использовании pyspark задачи одинаково распределяются между исполнителями. Однако при использовании искровой оболочки задачи не распределяются одинаково. Более мощные машины получают больше задач, в то время как более слабые машины получают меньше задач.
С искр-оболочкой, работа закончена через 25 минут, а с pyspark - около 55 минут. Как я могу заставить Spark Standalone назначать задачи с помощью pyspark, поскольку он назначает задачи с помощью искровой оболочки?
Вопрос обновлен, извините за поздний ответ. – gunererd