我在文件中有Pig脚本的序列,我想从Shell脚本执行它 执行猪脚本sqeuenciatly。
对于Ex:
sh script.sh / it / provider / file_name PIGddl.txt
假设PIGddl.txt有像
这样的Pig脚本如果所有Pig查询都在一个文件中,那么如何从Shell脚本执行pig脚本?
答案 0 :(得分:2)
下面的想法是有效的,但是如果你想要顺序进程,比如1执行那么执行2 else执行3种流程,你可以和Oozie一起运行和安排工作。
#!/bin/sh
x=1
while [ $x -le 3 ]
do
echo "pig_dcnt$x.pig will be run"
pig -f /home/Scripts/PigScripts/pig_dcnt$x.pig --param timestamp=$timestamp1
x=$(( $x + 1 ))
done
答案 1 :(得分:0)
我还没有对此进行过测试,但我确信这样可以正常使用。
假设您有两个要使用shell脚本运行的pig文件,那么您将编写一个shell脚本文件,其中包含以下内容:
#!/bin/bash
pig
exec pig_script_file1.pig
exec pig_script_file2.pig
所以当你运行这个shell脚本时,它最初会执行pig
命令并进入grunt shell
并在那里按照你提到的顺序执行你的猪文件
上述解决方案无效。请参考下面的那个 测试
使用以下内容更新脚本文件,以便它可以按照您定义的顺序运行您的pig文件
#!/bin/bash
pig pig_script_file1.pig
pig pig_script_file2.pig
答案 2 :(得分:0)
这是你必须做的 1.将xxx.pig文件保存在某个位置# 2.从shell执行这个pig脚本使用下面的命令 pig -p xx = date(如果你有一些参数要传递)-p xyz = value(如果有另一个参数要传递)-f /path/xxx.pig -f用于从.pig文件执行生成的代码行。