【问题标题】:How to For Each RDD Spark Streaming如何为每个 RDD Spark Streaming
【发布时间】:2015-11-18 20:29:54
【问题描述】:

我有一个 CSV 文件 query.txt,我正在阅读这样的文件:

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

querys.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 是我的自定义类,它会将变量映射到文件中的列。

任何其他建议都会有所帮助。

【问题讨论】:

    标签: java foreach apache-spark hashmap


    【解决方案1】:

    我猜这就是您要查找的内容,但此示例不解析 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 
        }});
    

    【讨论】:

      猜你喜欢
      • 2017-05-29
      • 2017-07-02
      • 2016-01-04
      • 2016-06-12
      • 2015-09-02
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      相关资源
      最近更新 更多