2015-08-25 71 views
1

我有一個CSV文件queries.txt和我讀的文件是這樣的:如何爲每個RDD星火流

JavaRDD<String> distFile = sc.textFile("queries.txt"); 

queries.txt的模式文件是: Uniq_Id ,,, ... csv中的一些數字值...

我需要爲每一行創建一個HashMap,其關鍵字是第一列的queries.txt文件(Uniq_Id),值是文件中的其他列到HashMap。

示例。 (這是不是真實的,而不是一個工作的例子,我只是想表達的精髓)

HashMap totalMap = new HashMap<Integer, NumericValues>(); 

for(int i=0;i<distFile.size();i++) 
{ 
    String line = distFile[i].getColumns(); 
    for(int y=0;y<line.size();y++) 
    { 
     totalMap.put(line.getFirstColumn,line.getRemainingColumns); 
    } 
} 

這裏NumericValues是將變量映射到文件中的列我的自定義類。

其他任何建議都會有幫助。

回答

4

我想這就是你要找的,但這個例子不解析CSV行本身。

JavaRDD<String> distFile = sc.textFile("queries.txt"); 
    HashMap totalMap = new HashMap<Integer, NumericValues>(); 
    distFile.foreach(new VoidFunction<String>(){ 
      public void call(String line) { 
       totalMap.put(yourCSVParser(line)); //this is dummy function call 
    }});