我想在我的数据集上对以前不知道的多个列进行分组,因此.agg()允许传递一个Map,其中键是列名,值是聚合名,例如,我可以这样做:
for(String column:columns)
map.put(column, "sum");
ds.groupBy("someColumn").agg(map)
在这之前还不错,但我想保留原来的列名,不要有这样的东西
“|总和(第1列)|总和(第12列)|…”
我尝试过这样做,但没有成功:
map.put(column, "sum alias " + column);
有没有可能用javaapi实现这一点?
1条答案
按热度按时间oxosxuxt1#
试试这个-
我已将列名作为别名提供给
sum(column)
```Dataset df = spark.range(2).withColumn("value", lit(2));
df.show(false);
df.printSchema();
Buffer toScalaSeq(List list) {
return JavaConversions.asScalaBuffer(list);
}