Apache Spark 和不可序列化的应用程序上下文



我是Spark的新手。

我想使用 Spark 和 map-reduce 方法并行化我的计算。但是这个计算,我把它放到映射阶段的 PairFunction 实现中,需要一些上下文来初始化。此上下文包括来自第三方 jar 的几个单例对象,并且此对象不可序列化,因此我无法将它们分布在工作节点上,也无法在我的 PairFunction 中使用它们。

所以我的问题是:我是否可以使用 Apache Spark 以某种方式并行化需要不可序列化上下文的作业?还有其他解决方案吗?也许我可以以某种方式告诉 Spark 在每个工作节点上初始化所需的上下文?

您可以尝试使用 mapPartitionforeachPartition 在执行器中初始化您的第三方 jar

rdd.foreachPartition { iter =>
  //initialize here
  val object = new XXX()
  iter.foreach { p =>
    //then you can use object here
  }
}

相关内容

  • 没有找到相关文章

最新更新