是否可以从任务中获取和使用JavaSparkContext?

时间:2015-05-20 15:40:03

标签: apache-spark spark-streaming apache-spark-sql

我遇到过一种情况,我想做一个"查找"在Spark和/或Spark Streaming管道中(在Java中)。查找有点复杂,但幸运的是,我有一些可以重用的现有Spark管道(可能是DataFrame)。

对于每个传入的记录,我都希望可能从任务中启动一个spark作业,以获取必要的信息来装饰它。

考虑到性能影响,这永远是个好主意吗?

不考虑性能影响,这是否可能?

1 个答案:

答案 0 :(得分:1)

  

是否可以从任务中获取和使用JavaSparkContext?

没有。 spark上下文仅在驱动程序上有效,Spark将阻止它的序列化。因此,无法在任务中使用Spark上下文。

  

对于每个传入的记录,我想发布一个火花作业   从任务中获取必要的信息来装饰它。   考虑到性能影响,这将是一个好的   想法?

如果没有更多细节,我的回答是:可能不是一个好主意

  

不考虑性能影响,这是否可能?

是的,可能是将基本集合带到驱动程序(collect)并迭代它。如果该集合不适合驱动程序的内存,请在上一点。

如果我们需要处理每条记录,请考虑使用“装饰”数据集执行某种形式的join - 这将只是一个大工作而不是大量的小工作。