在 PIG 中执行 UDF 时出错
Posted
技术标签:
【中文标题】在 PIG 中执行 UDF 时出错【英文标题】:Error while excecuting UDF in PIG 【发布时间】:2013-03-20 13:42:36 【问题描述】:我正在尝试使用示例运行我的第一个 UDF
http://wiki.apache.org/pig/UDFManual。 现在我有我的 FirstUdf.jar,myscript.pig 都在同一个文件夹中
我的myscript.pig如下
REGISTER FirstUdf.jar; A = LOAD '/home/vishal/exampleforPIG1' AS
(exchange: chararray, symbol: chararray, date: int,value:float);
B =FOREACH A GENERATE myudfs.UPPER(symbol);
转储 B;
现在当我给出以下命令来运行我的脚本时,它给了我以下错误
命令--
java -cp FirstUdf.jar home/vishal/FirstUdf.jar -x local myscript.pig
以下错误--
ERROR 1000:解析时出错。遇到“java” 在第 1 行第 1 列。
我给的命令是错误的还是有什么问题
【问题讨论】:
【参考方案1】:您可以尝试以下方法:
硬编码您拥有的自定义 UDF 的路径:
REGISTER '/path/to/FirstUdf.jar';
DEFINE myUDF com.example.MyUDF();
...
Then:
pig -f myscript.pig -x local
...或将其作为命令行参数传递:
REGISTER '$UDF_PATH/FirstUdf.jar';
DEFINE myUDF com.example.MyUDF();
...
Then:
pig -f myscript.pig -param UDF_PATH=/path/to -x local
【讨论】:
HI Lonard,感谢您的回复....我对 'Firstudf.jar 是否应该放在存钱罐或任何地方还有一个疑问 Firstudf.jar 不应该在 Piggybank 目录中,只需选择一个合适的位置来存储您的自定义 jar。 @vishal1985 另一方面,可以将问题恢复为您提出的原始问题,因为现在问题和我的答案不同步。整个事情看起来有点模棱两可。只需针对您遇到的其他问题创建一个新问题。 在您的用户资料/活动选项卡下,您可以看到您的问题的修订以上是关于在 PIG 中执行 UDF 时出错的主要内容,如果未能解决你的问题,请参考以下文章
Pig 处理多个文件错误:错误 0:在 [] 处执行 ForEach 时出错