Я столкнулся с одной проблемой - это агрегация Spark sql. У меня есть один фрейм данных, из которого я загружаю записи из apache phoenix.
val df = sqlContext.phoenixTableAsDataFrame(
Metadata.tables(A.Test), Seq("ID", "date", "col1", "col2","col3"),
predicate = Some("\"date\" = " + date), zkUrl = Some(zkURL))
В другом фрейме данных мне нужно агрегировать на основе идентификатора и даты, а затем суммировать 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