1

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

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

谢谢萨拉

4

2 回答 2

0

我很难理解你真正想要做什么。那将是我的解决方案>针对您的问题,发送未知数量的日期(按字符数组排序):

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

这是非常基本的,所以我想我没有正确理解您的问题。你能不能 > 发展一点你的问题?

更新>>如果您使用 Pig 0.11,这样的事情怎么样(模块导入在 0.10 之前有一个错误):

#!/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()改用。

于 2013-02-13T17:24:16.830 回答
-1

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

load.pig(内容):

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

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

pig -x local -param input=20120301,20120302,20120304 load.pig
于 2015-10-23T04:55:27.097 回答