java - 为什么只有 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
。
对于这段代码,我期待操作groupBy
,agg
并orderBy
在 spark 用户界面中显示为阶段。但是,如下所示,仅show()
显示操作:
这些操作没有出现是有原因的吗?show()
由于 的输出正确,因此所有操作都成功执行。
解决方案
推荐阅读
- sql - 从 postgres 的时间戳列中仅选择 HH:MM:SS(小时、分钟和秒)
- heroku - 从我的 nodejs 应用程序连接第二个 postgresql 数据库
- c - 如何在 C 中生成概率为(1 到 100)的随机布尔值?
- python - InternetException("没有互联网 - Pywhatkit 需要有效的互联网连接")
- list - 不同列表的两个元素之间的差异。表现;
- python - 我无法理解函数定义(带有 '=' 的参数)
- sql - PostgresQL - 为 SELECT 查询定义 SEQUENCE
- excel - 在同一个 Excel 图表中显示多个时间序列
- mysql - Ruby on rails 将行转换为列
- reactjs - 在 react.js 中将大小调整为移动设备时,如何更改为新页面?