小编Ram*_*mar的帖子

如何将Spring上下文传递给Spark工作节点

我是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

5
推荐指数
1
解决办法
992
查看次数

标签 统计

apache-spark ×1