如何创建键值对?

时间:2016-01-25 09:12:15

标签: scala apache-spark

我在我的键值对上使用了groupByKey。现在我有了这个(键,Iterable)。 我想从它做出这些键值对:((键,(列表的一个元素)),1)对于所有列表v。

我该怎么做?如何在可迭代列表上循环?

 
val lines = sc.textFile("followers.txt").map(s => {
  val substrings = s.split(" ")
  (substrings(0), substrings(1))
})
val aggrigateNeighbors = lines.groupByKey().collect().foreach(println)
val friends = aggrigateNeighbors.flatMap{x=>((k,v.hasNext()),1)}

1 个答案:

答案 0 :(得分:2)

你几乎就在那里。

您需要映射迭代器并从每个

创建所需的条目

未经测试,抱歉,我不在我可以测试它的电脑前。

val lines = sc.textFile("followers.txt").map(s => {
  val substrings = s.split(" ")
  (substrings(0), substrings(1))
})
val aggregateNeighbors = lines.groupByKey()
val friends = aggregateNeighbors.flatMap{case (k,v) => v.map{s=>((k,s), 1)}}