如何分析 pyspark 工作

sau*_*sau 10 profiler apache-spark apache-spark-sql pyspark spark-dataframe

我想了解 pyspark 代码中的分析。

在此之后:https : //github.com/apache/spark/pull/2351

>>> sc._conf.set("spark.python.profile", "true")
>>> rdd = sc.parallelize(range(100)).map(str)
>>> rdd.count()
100
>>> sc.show_profiles()
============================================================
Profile of RDD<id=1>
============================================================
         284 function calls (276 primitive calls) in 0.001 seconds

   Ordered by: internal time, cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        4    0.000    0.000    0.000    0.000 serializers.py:198(load_stream)
        4    0.000    0.000    0.000    0.000 {reduce}
     12/4    0.000    0.000    0.001    0.000 rdd.py:2092(pipeline_func)
        4    0.000    0.000    0.000    0.000 {cPickle.loads}
        4    0.000    0.000    0.000    0.000 {cPickle.dumps}
      104    0.000    0.000    0.000    0.000 rdd.py:852(<genexpr>)
        8    0.000    0.000    0.000    0.000 serializers.py:461(read_int)
       12    0.000    0.000    0.000    0.000 rdd.py:303(func)
Run Code Online (Sandbox Code Playgroud)

以上效果很好。但是,如果我执行以下操作:

from pyspark.sql import HiveContext
from pyspark import SparkConf
from pyspark import SparkContext
conf = SparkConf().setAppName("myapp").set("spark.python.profile","true")
sc   = SparkContext(conf=conf)
sqlContext = HiveContext(sc)

df=sqlContext.sql("select * from myhivetable")
df.count()
sc.show_profiles()
Run Code Online (Sandbox Code Playgroud)

这没有给我任何东西。我得到数但show_profiles()给我None

任何帮助表示赞赏

小智 5

使用 Spark SQL 时没有要分析的 Python 代码。唯一的 Python 是调用 Scala 引擎。其他一切都在 Java 虚拟机上执行。

  • 我有一个复杂的 pyspark 工作,我想对其进行分析。那怎么办?有标准解决方案吗? (3认同)