如何在架构定义期间指定ToDate?

时间:2014-04-15 09:47:25

标签: hadoop apache-pig cloudera

我加载文件并分两步生成日期:

A = LOAD 'foo.txt' USING PigStorage('\\u001') AS (
    bar:chararray
    ,baz:int
);
B = FOREACH A GENERATE
    ToDate(bar, 'yyyy-MM-dd HH:mm:ss') AS bar
    ,baz
;

如何一步完成?

以下引发错误(mismatched input '(' expecting RIGHT_PARAN

A = LOAD 'foo.txt' USING PigStorage('\\u001') AS (
    ToDate(bar:chararray, 'yyyy-MM-dd HH:mm:ss') AS bar
    ,baz:int
);

A = LOAD 'foo.txt' USING PigStorage('\\u001') AS (
    ToDate($0, 'yyyy-MM-dd HH:mm:ss') AS bar
    ,baz:int
);

2 个答案:

答案 0 :(得分:1)

UDF不能应用于架构定义中。您可以改为编写own loader

答案 1 :(得分:0)

尝试使用^A代替\\u001。有关详细信息,请使用此link