在foreachPartition内部访问的广播值

时间:2018-08-28 21:21:28

标签: apache-spark

在驱动程序中,我创建了一个要广播的val,该val不会产生任何问题:

val some_val = 100
val some_val_BC = sc.broadcast(some_val)

但是,在foreachPartition构造中,如果我尝试以任何方式访问some_val_BC并使用它,则会出现“任务无法序列化”错误。

我肯定了解Broadcast JOIN,以及以下示例:

 rdd.map(i => broadcasted.value.contains(i))

那又如何呢? :

val x = some_val_BC.value

我看不出原因。除非它必须与地图一起使用。

1 个答案:

答案 0 :(得分:0)

它不是怎么工作的。好像是有用的恕我直言。