Я пытаюсь профилировать работу pyspark, представленную в моем кластере. Этот pyspark PR (https://github.com/apache/spark/pull/2556) указывает sc.dump_profiles(path)
- это команда. Я попытался сбросить выход профиля в hadoop hdfs:///user/username/filename
, а также локально file:///home/username/filename
и /home/username/filename
. Задание завершается, но профиль никогда не появляется.Отсутствует выход из профилировщика pyspark
код основан на этом SO вопрос (How to profile pyspark jobs) и sc.show_profiles() делает работу в интерактивном режиме при включении --conf spark.python.profile=true
.
from pyspark import SparkContext, SparkConf
import logging
if __name__ == "__main__":
logging.getLogger("py4j").setLevel(logging.ERROR)
conf = SparkConf().setAppName("profile")
sc = SparkContext(conf=conf)
rdd = sc.parallelize(range(100)).map(str)
rdd.count()
sc.show_profiles()
sc.dump_profiles("hdfs:///user/username/python_profiled")
Я представляю работу как этот /opt/spark/bin/spark-submit --verbose --conf spark.python.profile=true --master yarn --deploy-mode cluster --queue production --num-executors 4 test_profile.py
Любые указатели о том, как форматировать path
, чтобы получить выход профиля?