Профилирующий код Scala для Spark

Я новичок в Scala и программировании больших наборов данных. Мне нужно использовать профилировщик в локальной среде, чтобы проверить, какая операция / функция слишком медленная в моем коде Scala, я пробовал интерфейс Spark как на локальном узле, так и в кластерной среде, но этого недостаточно. Проблема в том, что мой код - это "скрипт" Scala, или, что лучше, это всего лишь последовательность строк кода, выполняемых непосредственно в оболочке spark.

Все распространенные профилировщики требуют хорошо структурированного кода Scala для создания файла JAR и запуска файла JAR для подключения агента профилировщика. Я не знаю, где искать. Есть идеи? Это возможно или нет?

1 ответ

Решение

Вы можете прикрепить профилировщики Java (например, бесплатный jvisualvm который поставляется с JDK) для любой работающей JVM. Я не пробовал, но я считаю, что вы должны иметь возможность профилировать код, который выполняется Spark.

Конечно, вы должны подключиться к правильной JVM, где выполняется код. Если он выполняется удаленно, он не поможет подключиться к локальной JVM, на которой работает оболочка Spark.

Вы также должны убедиться, что профиль в нужный момент.

Другие вопросы по тегам