Anu*_*ale 10 apache-spark apache-spark-sql
首先,我对SPARK很新
我的数据集中有数百万条记录,我希望将groupby与name列分组,并查找具有最大年龄的名称.我得到了正确的结果,但我需要结果集中的所有列.
Dataset<Row> resultset = studentDataSet.select("*").groupBy("name").max("age");
resultset.show(1000,false);
Run Code Online (Sandbox Code Playgroud)
我在结果集数据集中只得到名称和最大值(年龄).
Aka*_*thi 11
对于您的解决方案,您必须尝试不同的方法.你几乎在那里寻求解决方案,但让我帮助你理解.
Dataset<Row> resultset = studentDataSet.groupBy("name").max("age");
Run Code Online (Sandbox Code Playgroud)
现在你可以做的是,你可以加入resultset与studentDataSet
Dataset<Row> joinedDS = studentDataset.join(resultset, "name");
Run Code Online (Sandbox Code Playgroud)
这个问题groupBy,在应用groupBy之后,你得到了RelationalGroupedDataset它取决于你执行的下一个操作sum, min, mean, max等等,然后这些操作的结果加入groupBy
在你的情况下,name列加入了max,age所以它只会返回两列但如果使用apply groupByon age然后应用max'age'列,你会得到两列age第二列,第二列是max(age).
注意: - 代码未经过测试请在需要时进行更改希望这可以让您清楚查询
| 归档时间: |
|
| 查看次数: |
15412 次 |
| 最近记录: |