Я пытаюсь преобразовать bigdecimal (YYYYMMDD) в формат даты (ГГГГ/ММ/ДД) с помощью скрипта свиньи. Для этого я написал ниже кодконвертировать YYYYMMDD в формат даты YYYY/MM/DD
STOCK_A = LOAD '/user/cloudera/hl7' USING PigStorage('|');
data = FILTER STOCK_A BY ($1 matches '.*OBR.*');
MSH_DATA = FOREACH data GENERATE ToString($8,'yyyy-MM-dd')AS date;
Выход я получаю
20140926-01-01
20140929-01-01
20141002-01-01
Хотя ожидаемый выход
2014/09/26
2014/09/29
2014/10/02
Образец имеющий дату
20140926
20140929
20141002
но у меня есть огромные элементы ряда, как я могу назначить $ 8 как chararay? – animal
'STOCK_A = LOAD '/ user/cloudera/hl7' ИСПОЛЬЗОВАНИЕ PigStorage ('|');' Эта строка означает, что все загруженные строки будут разделены разделителем '|' для chararray полей, как вы didn; t указать схему. Просто используйте вышеприведенное решение и попробуйте прочитать больше документации о свинге. – Alexey
Спасибо, что это сработало. Я новичок в свинцовом латыни, и я буду следовать твоему совету. – animal