Каждый подход, который я пробовал, оставляет мне сумму всего столбца.У каждой строки есть массив, заполненный двойниками.Мне нужен столбец сумм для каждой строки.
Итак, вы начинаете с кадра данных, который выглядит следующим образом:
id c2 c3
-------------------------
1 1 [2.0, 1.0, 0.0]
2 2 [0.0, 0,0, 0.0]
И в результате я хочу это:
id c2 c3sum
-------------------------
1 1 3.0
2 2 0.0
Я попытался использовать метод sum после выполнения groupBy
для "id".Я также пытался использовать udf
:
def mySum(arr:Seq[Double]):Double=arr.reduceLeft(_+_)
val dfsum = df.withColumn("c3sum", mySum($"c3"))
Эти и другие варианты udf
всегда возвращали сумму всего в столбце.В качестве теста я также попытался использовать array.max
, чтобы просто получить максимальное число для каждого массива вместо их суммирования, и он вернул максимальное значение для всего столбца.Поэтому, скорее всего, это какая-то основная проблема синтаксиса, которую я не понимаю.
Заранее благодарю за помощь.