我在我的键值对上使用了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)}
答案 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)}}