我有一个 CSV 文件 queries.txt,我正在读取这样的文件:
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 是我的自定义类,它将变量映射到文件中的列。
任何其他建议都会有所帮助。
最佳答案
我想这就是您要查找的内容,但此示例本身并未解析 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
}});
关于java - 如何为每个 RDD Spark Streaming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198860/