我正在尝试执行以下操作。我有多个日期,我想创建一个猪脚本,它获取未知数量的输入日期,然后运行输入参数的猪脚本。我的问题是:
如何将未知数量的输入变量发送到pig脚本,然后在pig脚本中处理它们?
由于 萨拉
答案 0 :(得分:0)
我很难理解你真正想做的事情。这将是我的解决方案>针对您的问题,发送未知数量的日期(按照chararray排序):
A = load 'input_dates' AS (date:chararray); B = my_macro(A);
这是非常基本的,所以我想我没有正确理解你的问题。你可以>开发一点你的问题吗?
更新 >>如果您使用Pig 0.11 (there is a bug until 0.10 for module imports)这样的话怎么样:
#!/usr/bin/python
import os
from org.apache.pig.scripting import *
P = Pig.compile("""
data = LOAD '$docs_in' AS (a:int);
-- do something
""")
lof = os.listdir("/home/.../dates/")
params = []
for elem in lof:
params.append({'docs_in': str(elem)})
lof.remove(elem)
bound = P.bind(list_of_files)
stats = bound.run(params)
如果每次运行都依赖于前一次运行的结果,请改用runSingle()
。
答案 1 :(得分:-1)
如果我正确理解了问题,您需要加载多个文件或目录。您可以指定为“,”作为输入。 以下是一个例子:
load.pig(content):
pig -x local -param input=20120301,20120302,20120304 load.pig
运行命令(在本地运行):
{{1}}