我是Spark的新手,我有弹簧上下文(使用ClassPathXmlApplicationContext将xml加载到应用程序上下文中),需要传递给worker节点.我能够创建Spark上下文并尝试在我的flatMap和null中使用它.无论如何我可以将它传递给Flatmap函数吗?我正在调用另一个需要这个Spring环境的spark中的框架.
这是一些代码
ApplicationContext context = new ClassPathXmlApplicationContext("spring/rules-engine-spring.xml");
JavaRDD<Row> partitions = r.mapPartitions(
new FlatMapFunction<Iterator<Row>, Row>() {
public Iterable<Row> call(Iterator<Row> rowIterator) throws Exception {
List<Data> factList = new ArrayList<Data>();
while (rowIterator.hasNext()) {
Row rw = rowIterator.next();
Data fact = new Data();
fact.setGrain(rw.getString(0));
fact.setRoute(rw.getString(1));
factList.add(fact);
}
Iterable itr = new Iterable() {
List l = new ArrayList<Integer>();
public Iterator iterator() {
return l.iterator();
}
};
return itr;
}
});
List result=partitions.collect();
Run Code Online (Sandbox Code Playgroud)
当我试图在FlatMapFunction中使用上下文时,它为null.在这种方法之外,上下文具有价值.任何帮助,将不胜感激.
apache-spark ×1