列表

时间:2017-02-22 00:44:24

标签: scala list apache-spark rdd breadth-first-search

我有一个列表(在Scala中)。

val seqRDD = sc.parallelize(Seq(("a","b"),("b","c"),("c","a"),("d","b"),("e","c"),("f","b"),("g","a"),("h","g"),("i","e"),("j","m"),("k","b"),("l","m"),("m","j"))) 

我按特定统计数据的第二个元素进行分组,并将结果展平为一个列表。

val checkItOut = seqRDD.groupBy(each => (each._2))
                   .map(each => each._2.toList)
                   .collect
                   .flatten
                   .toList

输出如下:

checkItOut: List[(String, String)] = List((c,a), (g,a), (a,b), (d,b), (f,b), (k,b), (m,j), (b,c), (e,c), (i,e), (j,m), (l,m), (h,g))

现在,我要做的是" group"连接到任何一对中的其他元素到一个列表的所有元素(不是对)。 例如: c是一对中的a,下一个是g,所以(a,c,g)是连接的。然后,c也是b和e,b是a,d,f,k,这些与其他一对中的其他字符有关。我希望将它们列入清单。

我知道这可以通过BFS遍历来完成。不知道Spark中是否有API可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)