如何使用reducebykey

时间:2016-01-21 16:20:44

标签: scala apache-spark cassandra

我试图在两个单独的列中计算每个键的总数。

我从cassandra拉出两列:

val data = sc.cassandraTable("Meter","Measured_Value").where("\"Time_Key\" = 1601822").select("Power","Start_Frequency")

我已尝试映射两列并使用reduceByKey,但似乎无法正确映射。

我认为我需要映射以下内容,但似乎无法使其正常工作:

power:Float => power,1
frequency:Double => frequency,1

然后执行.reduceByKey(_ + _)

但是我在猜测。任何有关语法的帮助都将非常感激。

1 个答案:

答案 0 :(得分:0)

试试这个:

val data: RDD[(Float,Double)] = sc.cassandraTable("Meter","Measured_Value")
           .where("\"Time_Key\" = 1601822")
           .select("Power","Start_Frequency")
           .as((_:Float,_:Double)) 

val reduced: RDD[(Float,Double)] = data.reduceByKey{ case(left, right) => left + right}