在下面的应用程序UI片段中,每个阶段的蓝色块代表什么?
做什么"交换"和#34; WholeStageCodeGen"等等意味着什么?
我在哪里可以找到资源来解释这里有什么火花?
非常感谢
答案 0 :(得分:15)
每个蓝框都是Apache Spark工作的步骤。
你问的是WholeStageCodegen
这个东西是:
全阶段代码生成(又名WholeStageCodegen或WholeStageCodegenExec)将多个运算符(作为支持codegen的计划子树)融合在一起,形成一个旨在提高执行性能的Java函数。它将查询折叠为单个优化函数,该函数消除了虚函数调用,并利用CPU寄存器获取中间数据。
您可以在此处查看详细信息SPARK-12795
交换意味着更多细节之间的Shuffle Exchange:
ShuffleExchange是一个一元的物理运算符。它对应于Repartition(启用了shuffle)和RepartitionByExpression逻辑运算符(在BasicOperators策略中翻译)。
您可以使用explain
command
每个步骤都会显示您的数据帧将要执行的操作,如果您的逻辑是正确的,这很好。如果您想了解有关Spark UI的更多详细信息,我建议您查看Spark Summit的this演示文稿,并阅读有关执行计划的this文章。
这些信息将向您展示更多关于您的疑问。