使用xpath和Python UDF的Pig脚本

2024-06-16 10:07:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个Pig脚本,在运行一些UDF之后,将XML文件作为输入并返回文件中某个子节点的所有值。这是我正在运行的脚本:

REGISTER 'piggybank-0.15.0.jar';
REGISTER 'function.py' USING streaming_python as myFunc;
DEFINE XPathAll org.apache.pig.piggybank.evaluation.xml.XPathAll();
A = LOAD 'file.xml' using org.apache.pig.piggybank.storage.XMLLoader('Parent') as (x:chararray);
B = FOREACH A GENERATE XPathAll(x, 'Parent/Child', true, true) as (y:tuple);
C = FOREACH B myFunc.func(y);
DUMP C;

尝试调用UDF后,我收到以下错误:

^{pr2}$

注意:如果我描述B而不将其设置为tuple,则得到结果B:{()}。我打错电话给myFunc了吗?我不知道怎么把B的行传给myFunc。在


Tags: 文件org脚本registertrueapacheasxml