我有一个猪脚本,我想将文件的内容作为参数传递。例如,该文件可能包含类似这样的内容
asdfadfafd""""""
adfadfaf'' '''adsfa
adsfadfadfafdafadf
我想将这些内容作为单个参数传递给pig脚本。我该怎么办?
答案 0 :(得分:0)
确定。如果从shell脚本调用Pig脚本,则可以将单个参数或多个参数发送到Pig脚本。
只需在shell脚本中初始化变量的值,然后就可以将该值传递给pig脚本
假设您的shell脚本名称是demo.sh
input_data = "hello";
Pig -P input_data=$input_data /user/cloudera/pigscripts/demo.pig
让我们假设下面是你的猪代码。您可以访问pig代码中的参数,如下所示
A = LOAD 'input.txt' USING PigStorage(',') AS(id:int,name:chararray);
B = FILTER A by name == '$input_data';
同样,您可以将包含一些属性的文件传递给您的pigcript
Pig -param_file '/user/cloudera/propertyfiles/file1.txt' demo.pig
通过这样做,我们可以使用$
获取Pigscript内的file1.txt内的所有变量答案 1 :(得分:0)
有多种方法。一个是
pig_script.pig: - R1 = LOAD' $ INPUTFILES1'使用PigStorage(',')AS(show_name:chararray,no_of_viewer:int);
pig_param.param: - INPUTFILES1 = hdfs://192.168.0.107/path-to/input-file
执行命令: - pig -param_file hdfs://192.168.0.107/path-to/pig_param.param hdfs://192.168.0.107/path-to/pig_script.pig