使用UDF在pig中动态设置输入和输出路径

时间:2013-12-11 19:46:46

标签: apache-pig

我想创建一个动态创建输入和输出路径的无参数猪脚本。 脚本本身应根据当前日期确定输入文件glob,同样根据当前日期确定输出文件路径。虽然我知道可以轻松传递参数,但我希望有一个无参数脚本,并使用几个简单的jython UDF来计算这些路径。 我怎么做?我似乎无法通过调用UDF来设置变量。例如,

  

%默认OUTPUTPATH myfn();

  

path = myfn();

似乎没有用。

有什么想法吗?

(为什么没有args?因为我希望每天都有一个静态的亚马逊数据管道配置运行相同的脚本,但每次都会运行最后一天或上周的日志文件。)< / p>

1 个答案:

答案 0 :(得分:1)

可悲的是,据我所知,纯猪没有办法做到这一点。但是,您可以在python wrapper中定义这些更改变量。在你的情况下,你只需定义args的字典,如:

d = {
     'OUTPATH': myfn(),
    }

然后通过那个dict:

P = Pig.compile(path_to_my_script)

Q = P.bind(d)

results = Q.run()

当然还有一些要添加到包装器中,但是从文档中可以很清楚。