我正在尝试插入从kafka服务器中提取的日志,以便在带有Spark Streaming 2.0.0的ElasticSearc 5中插入。
这是我的代码。我的大问题是使用line" saveJsonToES",实际上,这个函数有一个用于指定索引名称的字符串参数。但是,我的索引名称是JavaDStream。我在oder中喜欢这样做,以在另一个类中生成动态索引名称。
JavaDStream<List<String>> newLines = lines.map(arg0 -> {
String lineToInsertInES = "";
String indexName = "";
List<String> list = new ArrayList<String>();
//some code to determine strings to add in my list
list.add(lineToInsertInES);
list.add(indexName);
return list;
});
JavaDStream<String> lineToInsertInES = newLines.map(list -> list.get(0));
JavaDStream<String> indexName = newLines.map(list -> list.get(1));
lineToInsertInES.foreachRDD(line->{
if(!line.isEmpty())
JavaEsSpark.saveJsonToEs(line,indexName); //problem at this line
});
你能告诉我如何解决这个问题吗?
提前谢谢
Ĵ