将文件的内容作为pig脚本中的参数传递

时间:2015-07-14 21:46:19

标签: apache-pig

我有一个猪脚本,我想将文件的内容作为参数传递。例如,该文件可能包含类似这样的内容

asdfadfafd""""""
adfadfaf''  '''adsfa
adsfadfadfafdafadf

我想将这些内容作为单个参数传递给pig脚本。我该怎么办?

2 个答案:

答案 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