首页 > 解决方案 > 为什么只有 show() 操作出现在 spark ui 中?

问题描述

我目前有一个使用 spark 的项目。对于这个项目,我们正在计算 a 的一些平均值,DataSet如下所示:

public void calculateAverages() {
    this.data.show();
    String format = "HH";

    // Get the dataset such that the time column only contains the hour. 
    Dataset<Row> df = this.data.withColumn("Time", functions.from_unixtime(functions.col("Time").divide(1000), format));

    df.show();

    // Group rows by the hour (HH).
    RelationalGroupedDataset df_grouped = df.groupBy("Time");

    // Calculate averages for each column.
    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])
        );

    // Order the rows from 00 to 24. 
    Dataset<Row> df_ordered = df_averages.orderBy(functions.asc("Time"));
    
    // Show in console. 
    df_ordered.show();
}

这里this.data定义为自定义类Dataset<PowerConsumptionRow> data在哪里PowerConsumptionRow

对于这段代码,我期待操作groupByaggorderBy在 spark 用户界面中显示为阶段。但是,如下所示,仅show()显示操作:

火花用户界面

这些操作没有出现是有原因的吗?show()由于 的输出正确,因此所有操作都成功执行。

标签: javaapache-sparkapache-spark-sqlspark-ui

解决方案


推荐阅读