我有一个案例类
__init__
现在,如果我写
case class Vec(var a: Int, var b: Int) {
def +(v: Vec): Vec = {
a += v.a
b += v.b
this
}
}
我得到与每个val rDistDS: RDD[(Int, Vec)] = ...
val sums: RDD[(Int, Vec)] = rDistDS.reduceByKey(_+_)
键关联的所有向量的总和。优异。
但是,我希望使用Int
执行此操作,以帮助查询规划器并使代码更具可读性。
我希望能够做到以下
DataFrame
有没有办法在我的自定义val df: DataFrame = ... // each row has Row(theInt: Int, vec: Vec)
df.groupBy(df("theInt")).agg(sum(df("vec")))
上实现此sum
聚合器,以便与上面模拟的Spark SQL Dataframe一起使用?
目前我得到了
case class
答案 0 :(得分:2)
从Spark 1.4开始,我认为不支持UDAF。
请查看以下门票了解更多信息: