gpt4 book ai didi

python - PySpark show_profile() 不使用 DataFrame API 操作打印任何内容

转载 作者:行者123 更新时间:2023-12-04 15:49:33 24 4
gpt4 key购买 nike

Pyspark 使用 cProfile 并根据 RDD API 的文档工作,但似乎没有办法让分析器在运行一堆 DataFrame API 操作后打印结果?

from pyspark import SparkContext, SQLContext
sc = SparkContext()
sqlContext = SQLContext(sc)
rdd = sc.parallelize([('a', 0), ('b', 1)])
df = sqlContext.createDataFrame(rdd)
rdd.count() # this ACTUALLY gets profiled :)
sc.show_profiles() # here is where the profiling prints out
sc.show_profiles() # here prints nothing (no new profiling to show)

rdd.count() # this ACTUALLY gets profiled :)
sc.show_profiles() # here is where the profiling prints out in DataFrame API

df.count() # why does this NOT get profiled?!?
sc.show_profiles() # prints nothing?!

# and again it works when converting to RDD but not

df.rdd.count() # this ACTUALLY gets profiled :)
sc.show_profiles() # here is where the profiling prints out

df.count() # why does this NOT get profiled?!?
sc.show_profiles() # prints nothing?!

最佳答案

这是预期的行为。

与提供原生 Python 逻辑的 RDD API 不同,DataFrame/SQL API 是 JVM 原生的。除非您调用 Python udf*(包括 pandas_udf),否则不会在工作机器上执行任何 Python 代码。在 Python 端完成的所有操作都是通过 Py4j 网关进行的简单 API 调用。

因此不存在分析信息。


* 请注意,udf 似乎也被排除在分析之外。

关于python - PySpark show_profile() 不使用 DataFrame API 操作打印任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54450896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com