2013-02-11 82 views
1

我正在尝试以下操作。我有多个日期,我想创建一个猪脚本,它获取未知数量的输入日期,然后为输入参数运行猪脚本。我的问题是:拉丁猪日期

如何将未知数量的输入变量发送到猪脚本,然后在猪脚本中处理它们?

感谢 萨拉

+0

igpay atinlay siay oolcay !! – 2013-02-11 08:40:14

回答

0

我有一些很难理解你真正想做的事。这将是我的解决方案>您的问题,发送数目不详的日期(归类为chararray):

A = load 'input_dates' AS (date:chararray); 
B = my_macro(A); 

这是很基本的,所以我想我没有正确地理解您的问题。你可能会>更多地发展你的问题吗?

UPDATE >>如何像这样如果使用猪0.11there 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()

+0

其实我想加载多个文件的内容:像20120301 20120302 20120304 – 2013-02-13 23:53:11

-1

如果我理解正确的问题,您想要加载文件或目录的数量。您可以指定为“,”作为输入。 下面是一个例子:

load.pig(内容):

A = LOAD '$input' using PigStorage(); 
dump A; 

命令来运行(在本地运行):

pig -x local -param input=20120301,20120302,20120304 load.pig