Хотя я не уверен, почему здесь нужно использовать reduByKey, но я предоставляю свое решение на основе моего понимания.
import sparkSession.implicits._
def col2sum(x:Array[Int],y:Array[Int]):Array[Int] = {
x.zipAll(y,0,0).map(pair=>pair._1+pair._2)
}
val kvData = sparkSession.sparkContext.parallelize(Seq(("aaa", Array(Array(1, 2, 3), Array(1, 1, 1)))))
val output = kvData.map(data => (data._1, data._2.reduce(col2sum)))
Преобразование в DataFrame для проверки результатов:
output.toDF("field_1", "field_2").show()
+----+---------+
|ddff| dffhj|
+----+---------+
| aaa|[2, 3, 4]|
+----+---------+