Spark中二维数据中第二维的计数

时间:2015-06-16 12:18:44

标签: apache-spark

我有这种格式的数据

(apple, laptop)
(apple, laptop)
(apple, ipad)
(dell, laptop)

我想输出

(apple, laptop, 2)
(apple, ipad, 1)
(dell, laptop, 1)

我想使用groupby and then count执行此操作,但groupby不允许基于两列进行分组。

我是Spark的新手,缺乏想法。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

如果您只想计算每个数据的计数,那么您可以使用countByValue API。

val data = Array(("apple","laptop"),("apple","laptop"),("dell","laptop"), ("apple","ipad"))
val rdd = sc.parallelize(data)
scala> rdd.countByValue
res0: scala.collection.Map[(String, String),Long] = Map((apple,laptop) -> 2, (apple,ipad) -> 1, (dell,laptop) -> 1)