2016-01-24 106 views
0

創建鍵值對我想在RDD元素作爲重點用一個成員,我怎麼能做到這一點 這是我的數據:如何從文本文件

2 1 
4 1 
1 2 
6 3 
7 3 
7 6 
6 7 
3 7 

我想創建一個鍵/值對使得鍵是一個元素,值也是下一個元素;

我寫了這個代碼:

def main(args: Array[String]) 
{ 
    System.setProperty("hadoop.home.dir","C:\\spark-1.5.1-bin-hadoop2.6\\winutil") 
    val conf = new SparkConf().setAppName("test").setMaster("local[4]") 
    val sc = new SparkContext(conf) 

    val lines = sc.textFile("followers.txt") 
    .flatMap{x => (x.indexOfSlice(x1),x.indexOfSlice(x2))} 

} 

,但事實並非如此,它不會確定元素的索引; 每兩個號碼是線

回答

2

也許我誤解你的問題,但如果你只是希望將數據分割成鍵值對,你只需要做到這一點:

val lines = sc.textFile("followers.txt").map(s => { 
    val substrings = s.split(" ") 
    (substrings(0), substrings(1)) 
}) 

不這解決你的問題?

+0

非常感謝你,但是當我想使用線作爲groupByKey操作的RDD時,我會得到錯誤 –

+0

我發現了,謝謝,我worte此:val aggrigateNeighbors = lines.groupByKey()。collect()。 foreach(println),對不起,我是一個初學者,但我正在做一個火花項目 –