2015-08-25 2 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 
    }}); 
Смежные вопросы