2013-11-22 83 views
1

共享方面,我已经遇到一个问题,搞清楚什么实际上下面这些线路的意思是:UDF的猪

当使用exec方法的对象,记住,任何 更改回做属性将不会被传递到UDF的 其他情况下在后台,除非你碰巧有 在相同的任务

这些都是从书上编程猪线(第131页)相同UDF的另一个实例,并把你放在所有这一切的背景下与Pig中的UDF以及执行上下文有关,同一个UDF的所有实例都可以将上下文从前端(编译)共享到后端(Running)。

的以为我不知道在所有的是,什么是此行的意义

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

我带走了的是在这个对推测执行一些轴承,那就是推测任务实际上是共享相同的UDF实例与之前正在启动的常规任务(在Pig上下文中),否则我完全对我理解所有这些方式有一种误解。

回答

0

我在这里猜测,所以我不介意来自别人的验证。

我想如果你多次调用UDF,你可以在同一个任务中拥有同一个UDF的同一个实例。我不认为他们在谈论投机性执行。例如: -

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

我想这是试图解释什么是你不能在UDF改变状态/上下文和指望它传播给他人。该类正在被实例化几次,一般用于每个任务。