我遇到的一个问题是sparksql聚合。我有一个从apachephoenix加载记录的Dataframe。
val df = sqlContext.phoenixTableAsDataFrame(
Metadata.tables(A.Test), Seq("ID", "date", "col1", "col2","col3"),
predicate = Some("\"date\" = " + date), zkUrl = Some(zkURL))
在另一个Dataframe中,我需要基于id和date进行聚合,然后求col1、col2、col3的和,即。
val df1 = df.groupBy($"ID", $"date").agg(
sum($"col1" + $"col2" + $"col3").alias("col4"))
但是我在求和的时候得到了错误的结果。如何求所有列(col1、col2、col3)的和并将其赋给col4?
例子:
假设数据如下:
ID,date,col1,col2,col3
1,2017-01-01,5,10,12
2,2017-01-01,6,9,17
3,2017-01-01,2,3,7
4,2017-01-01,5,11,13
预期产量:
ID,date,col4
1,2017-01-01,27
2,2017-01-01,32
3,2017-01-01,12
4,2017-01-01,29
1条答案
按热度按时间jvidinwx1#
我使用以下代码得到正确的结果:
结果是:
这是你需要的吗?