我目前有一个项目使用Spark。对于这个项目,我们计算的是平均值 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
是自定义类。
对于这段代码,我期望操作 groupBy
, agg
以及 orderBy
在spark用户界面中显示为阶段。然而,如下文所示,只有 show()
操作显示:
这些行动没有出现有什么原因吗?自 show()
是正确的。
暂无答案!
目前还没有任何答案,快来回答吧!