我遇到过一种情况,我想做一个"查找"在Spark和/或Spark Streaming管道中(在Java中)。查找有点复杂,但幸运的是,我有一些可以重用的现有Spark管道(可能是DataFrame)。
对于每个传入的记录,我都希望可能从任务中启动一个spark作业,以获取必要的信息来装饰它。
考虑到性能影响,这永远是个好主意吗?
不考虑性能影响,这是否可能?
答案 0 :(得分:1)
是否可以从任务中获取和使用JavaSparkContext?
没有。 spark上下文仅在驱动程序上有效,Spark将阻止它的序列化。因此,无法在任务中使用Spark上下文。
对于每个传入的记录,我想发布一个火花作业 从任务中获取必要的信息来装饰它。 考虑到性能影响,这将是一个好的 想法?
如果没有更多细节,我的回答是:可能不是一个好主意。
不考虑性能影响,这是否可能?
是的,可能是将基本集合带到驱动程序(collect
)并迭代它。如果该集合不适合驱动程序的内存,请在上一点。
如果我们需要处理每条记录,请考虑使用“装饰”数据集执行某种形式的join
- 这将只是一个大工作而不是大量的小工作。