【发布时间】:2016-07-20 22:23:16
【问题描述】:
我正在使用带有 Hcatalog 的 pig 从 hive 外部表中加载数据 我使用 pig -useHCatalog 输入 grunt 并执行以下命令:
register 'datafu'
define Enumerate datafu.pig.bags.Enumerate('1');
imported_data = load 'hive external table' using org.apache.hive.hcatalog.pig.HCatLoader() ;
converted_data = foreach imported_data generate name,ip,domain,ToUnixTime(ToDate(dateandtime,'MM/dd/yyyy hh:mm:ss.SSS aa'))as unix_DateTime,date;
grouped = group converted_data by (name,ip,domain);
result = FOREACH grouped {
sorted = ORDER converted_data BY unix_DateTime;
sorted2 = Enumerate(sorted);
GENERATE FLATTEN(sorted2);
};
所有命令都会运行并提供所需的结果。
问题: 我使用名为 pigFinal.pig 的上述命令制作了一个 pig 脚本,并在本地文件系统中的本地模式 coz 脚本中执行了以下操作。
pig -useHCatalog -x local '/path/to/pigFinal.pig';
例外
无法生成逻辑计划。嵌套异常: org.apache.pig.backend.executionengine.ExecException:错误 1070: 无法使用导入解析 datafu.pig.bags.Enumerate:[, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.] 在 org.apache.pig.parser.LogicalPlanBuilder.buildUDF(LogicalPlanBuilder.java:1507) 在 org.apache.pig.parser.LogicalPlanGenerator.func_eval(LogicalPlanGenerator.java:9372) 在 org.apache.pig.parser.LogicalPlanGenerator.projectable_expr(LogicalPlanGenerator.java:11051) 在 org.apache.pig.parser.LogicalPlanGenerator.var_expr(LogicalPlanGenerator.java:10810) 在 org.apache.pig.parser.LogicalPlanGenerator.expr(LogicalPlanGenerator.java:10159) 在 org.apache.pig.parser.LogicalPlanGenerator.nested_command(LogicalPlanGenerator.java:16315) 在 org.apache.pig.parser.LogicalPlanGenerator.nested_blk(LogicalPlanGenerator.java:16116) 在 org.apache.pig.parser.LogicalPlanGenerator.foreach_plan(LogicalPlanGenerator.java:16024) 在 org.apache.pig.parser.LogicalPlanGenerator.foreach_clause(LogicalPlanGenerator.java:15849) 在 org.apache.pig.parser.LogicalPlanGenerator.op_clause(LogicalPlanGenerator.java:1933) 在 org.apache.pig.parser.LogicalPlanGenerator.general_statement(LogicalPlanGenerator.java:1102) 在 org.apache.pig.parser.LogicalPlanGenerator.statement(LogicalPlanGenerator.java:560) 在 org.apache.pig.parser.LogicalPlanGenerator.query(LogicalPlanGenerator.java:421) 在 org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:188) ... 17 更多
我在哪里需要为猪脚本注册 datafu jar?我想这就是问题所在。 请帮忙
【问题讨论】:
标签: hadoop apache-pig