Профилирующий код Scala для Spark
Я новичок в Scala и программировании больших наборов данных. Мне нужно использовать профилировщик в локальной среде, чтобы проверить, какая операция / функция слишком медленная в моем коде Scala, я пробовал интерфейс Spark как на локальном узле, так и в кластерной среде, но этого недостаточно. Проблема в том, что мой код - это "скрипт" Scala, или, что лучше, это всего лишь последовательность строк кода, выполняемых непосредственно в оболочке spark.
Все распространенные профилировщики требуют хорошо структурированного кода Scala для создания файла JAR и запуска файла JAR для подключения агента профилировщика. Я не знаю, где искать. Есть идеи? Это возможно или нет?
1 ответ
Вы можете прикрепить профилировщики Java (например, бесплатный jvisualvm
который поставляется с JDK) для любой работающей JVM. Я не пробовал, но я считаю, что вы должны иметь возможность профилировать код, который выполняется Spark.
Конечно, вы должны подключиться к правильной JVM, где выполняется код. Если он выполняется удаленно, он не поможет подключиться к локальной JVM, на которой работает оболочка Spark.
Вы также должны убедиться, что профиль в нужный момент.