我想为Apache Pig编写一个Python UDF加载函数,以便我可以在Pig脚本中以下列方式使用它:
register 'myudfs.py' using jython as myfuncs;
A = load 'data' using myfuncs.myLoader() as line;
Pig documentation提供了在Java 中编写Load UDF 的一些细节,但不在Python 中。我已经设法用Python实现了非常有用的Eval函数,但我找不到任何关于如何用这种语言编写Load函数的信息。
因为我已经在Python中实现了一些Eval UDF,所以我想为所有的UDF坚持使用这种语言。
答案 0 :(得分:3)
是的,这是真的。您甚至可以查看要验证的来源。请注意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。