3

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

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

Pig 文档提供了一些使用 Java编写 Load UDF 的详细信息,但没有使用 Python。我已经设法用 Python 实现了非常有用的 Eval 函数,但是我找不到任何关于如何用这种语言编写 Load 函数的信息。

因为我已经在 Python 中实现了一些 Eval UDF,所以我想为我的所有 UDF 坚持使用这种语言。

4

1 回答 1

3

是的,它是真实的。您甚至可以查看来源进行验证。请注意如何JythonFunction扩展EvalFuncnot 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。

于 2013-08-20T18:20:52.393 回答