Udfs在Pig中共享上下文



我遇到了一个问题,弄清楚下面这些行的实际含义:

在exec方法中使用对象时,请记住对返回的属性所做的更改将不会传输到后端UDF的其他实例,除非您碰巧同一任务中同一UDF的另一个实例

这些都是书籍编程pig(第131页)中的行,为了让您了解上下文,所有这些都与pig中的UDF和执行上下文有关,同一UDF的所有实例都可以共享从前端(编译)到后端(运行)的上下文。

我一点也不明白,这条线的含义是什么

...you happen to have another instance of the same UDF in the same task

我从中得到的是,这与推测性执行有关,也就是说,推测性任务实际上与之前(在Pig上下文中)启动的正常任务共享相同的UDF实例,否则,我对理解所有这些的方式完全有误解。

我在这里进行猜测,所以我不介意其他人进行验证。

我想,如果您多次调用UDF,那么在同一任务中可能会有同一UDF的同一实例。我不认为他们在谈论投机处决。例如:

B = FOREACH A GENERATE udf1(col1), udf1(col2), udf1(col3);

我想这试图解释的是,你不能改变UDF中的状态/上下文,并期望它传播给其他人。该类被实例化了好几次,通常每个任务实例化一次。

相关内容

  • 没有找到相关文章

最新更新