为什么Spark UI中仅显示show()操作而groupBy等算子未出现?
Spark 聚合算子未在Spark UI独立显示的问题
我当前有一个使用Spark的项目,需要对DataSet计算部分平均值,实现逻辑如下:
public void calculateAverages() { this.data.show(); String format = "HH"; // 对数据集做处理,使Time列仅保留小时值 Dataset<Row> df = this.data.withColumn("Time", functions.from_unixtime(functions.col("Time").divide(1000), format)); df.show(); // 按小时(HH)对行分组 RelationalGroupedDataset df_grouped = df.groupBy("Time"); // 对各列计算平均值 Dataset<Row> df_averages = df_grouped.agg( functions.avg(column_names[0]), functions.avg(column_names[1]), functions.avg(column_names[2]), functions.avg(column_names[3]), functions.avg(column_names[4]), functions.avg(column_names[5]), functions.avg(column_names[6]) ); // 按00到24的时间顺序排列行 Dataset<Row> df_ordered = df_averages.orderBy(functions.asc("Time")); // 在控制台展示结果 df_ordered.show(); }
此处this.data的定义为Dataset<PowerConsumptionRow> data,其中PowerConsumptionRow是自定义类。
按照代码逻辑,我原本预期groupBy、agg、orderBy这些操作会作为Stage显示在Spark用户界面中,但实际仅能看到show()操作:

这些操作实际都已正常执行,因为最终show()的输出结果是正确的,请问是什么原因导致这些算子没有在Spark UI中显示?
内容的提问来源于stack exchange,提问作者K. Tilman
相关产品推荐
相关产品推荐

