是否可以将Python UDF传递为标量参数?

时间:2013-12-17 21:56:15

标签: python hadoop user-defined-functions apache-pig

是否可以将Python UDF传递为标量参数,如下所示:

A = LOAD 'date_list' AS (date:chararray); --Example date: 20130131
B = FOREACH A GENERATE DATE_LIB.get_week('YYYYMMDD', date)

我希望能够给出一个指定日期格式的标量参数(例如,对于像'31 -JAN-13'这样的日期的'DD-MON-YY' - 我可以重复使用它我在DATE_LIB中使用控制流来处理这种情况的UDF代码。我将如何在Python中执行此操作?由于Python UDF只能是EvalFuncs,他们有这种能力吗?

1 个答案:

答案 0 :(得分:0)

有可能 - 如果您查看example scripts 你会看到

@outputSchemaFunction("squareSchema")
def square(num):
  return ((num)*(num))

和调用示例

b = foreach a generate myfuncs.square(3);

在你的情况下,udf就像是

@outputSchemaFunction("dow:long")
def get_week(format,source_date):
    your code here