2014-04-15 6 views
0

загружаю мои файлы и создавать даты для них в два этапа:Как указать ToDate во время определения схемы?

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 
); 

ответ

1

UDFs не может. применяется в определении схемы. Вместо этого вы можете написать свой own loader.

0

Попробуйте использовать ^A вместо \\u001 Для получения дополнительной информации, используйте этот link

+0

Вопрос касался не разграничения, а применения ToDate –

Смежные вопросы