hadoop - 通过 pig 脚本传递参数时出错

标签 hadoop apache-pig

当我尝试使用属性文件调用 pig 脚本时出现错误:

pig -P /mapr/ANALYTICS/apps/PigTest/pig.properties -f pig_if_condition.pig
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/mapr/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/mapr/hbase/hbase-0.98.4/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
15/05/20 15:42:52 ERROR pig.Main: ERROR 2999: Unexpected internal error. Unable to parse properties file

'/mapr/ANALYTICS/apps/PigTest/pig.properties' 15/05/20 15:42:52 WARN pig.Main: There is no log file to write to. 15/05/20 15:42:52 ERROR pig.Main: java.lang.RuntimeException: Unable to parse properties file '/mapr/ANALYTICS/apps/PigTest/pig.properties' at org.apache.pig.Main.run(Main.java:343) at org.apache.pig.Main.main(Main.java:156) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

Pig 脚本是:

 test = load '$path' USING PigStorage(',') AS (ip:chararray,country:chararray);
 DUMP test;

最佳答案

-param (-p) 是指定单个参数。要指定参数文件,我们必须使用 -param_file 属性。

快捷命令:

  1. -m 与-param_file 相同
  2. -p 同-param

用法:

 pig  -param_file {property_file} -f {pig_file}

示例:

 pig  -param_file a.properties -f a.pig

pig 脚本:a.pig

A = LOAD '$INPUT' USING  PigStorage(',') AS (country_code:chararray, country_name:chararray);
DUMP A;

属性文件:a.properties

INPUT=a.csv

测试文件:a.csv

IN,India
US,United States
UK,United Kingdom

输出:

 (IN,India)
 (US,United States)
 (UK,United Kingdom)

关于hadoop - 通过 pig 脚本传递参数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30352659/

相关文章:

hadoop - 计划的数据加载到 Hadoop 中

json - Map Reduce 以在 hadoop 2.2 中解析 JSON 数据

hadoop - 使用 Pig 计算每行中的单词出现次数

hadoop - pig java.lang.NoSuchFieldException : jobsInProgress exception

java - 映射任务中的 ArrayIndexOutOfBound 异常

hadoop - Hadoop流式传输权限问题

python - 'unicode'对象没有属性 'saveAsTextFile'

hadoop - 组运算符和组与组

hadoop - 展平仅返回 char 数组中的第一项

hadoop - pig : ERROR 1000: Error during parsing