将数组参数传递给自定义pig loader

时间:2012-08-28 15:50:13

标签: user-defined-functions apache-pig

我编写了一个LoadFunc函数,允许我选择非结构化的巨大日志文件的给定关键字。如何将Tuple作为参数传递给我的函数?

这样的东西
A = load '/input/*' using MyLoader('keyword1','keyword2');

A = load '/input/*' using MyLoader( ('keyword1','keyword2') );

导致错误:

grunt> a = LOAD '/input/*' USING MyLoader( ('keyword1','keyword2') );     
2012-08-28 19:44:04,331 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 3, column 36>  mismatched input '(' expecting RIGHT_PAREN
Details at logfile: /home/hadoop/pig-0.10.0/pig_1346159261142.log

1 个答案:

答案 0 :(得分:2)

实际上,Pig LoadFunc只能接受其构造函数的String参数。见http://mail-archives.apache.org/mod_mbox/pig-user/201302.mbox/%3CCAO8ATY27UOdcgSjdh19F=iHsnFEAwmzedWbsnZ66sNvcsjfgog@mail.gmail.com%3E

出于您的目的,我将CSV作为字符串传递给您的LoadFunc,然后在LoadFunc的构造函数中解析它。