我想为Apache Pig编写一个Python UDF Load函数,以便在Pig脚本中按以下方式使用它:

register 'myudfs.py' using jython as myfuncs;
A = load 'data' using myfuncs.myLoader() as line;

Pig documentation提供了一些用Java而不是Python编写加载udf的细节。我已经用Python实现了非常有用的Eval函数,但是我找不到任何关于如何用这种语言编写加载函数的信息。
因为我已经在Python中实现了一些Eval udf,所以我希望所有udf都使用这种语言。

最佳答案

是的,这是真的。你甚至可以查看源代码来验证。注意JythonFunction如何扩展EvalFunc而不是LoadFunc
如果我需要使用python来处理文件的加载,我做的事情如下:

register 'myudfs.py' using jython as myudfs ;

A = LOAD 'foo.bar' AS (total:chararray) ;
B = FOREACH A GENERATE myudf.prepare_input(total) ;

模拟sudo LoadFunc。

10-07 19:59
查看更多