Я обрабатываю данные из набора файлов, которые содержат отметку даты в качестве части имени файла. Данные в файле не содержат штамп даты. Я хотел бы обработать имя файла и добавить его в одну из структур данных в script. Есть ли способ сделать это в Pig Latin (возможно, расширение PigStorage?) Или мне нужно предварительно обработать все файлы с помощью Perl и т.д. Заранее?
Я представляю себе что-то вроде следующего:
-- Load two fields from file, then generate a third from the filename
rawdata = LOAD '/directory/of/files/' USING PigStorage AS (field1:chararray, field2:int, field3:filename);
-- Reformat the filename into a datestamp
annotated = FOREACH rawdata GENERATE
REGEX_EXTRACT(field3,'*-(20\d{6})-*',1) AS datestamp,
field1, field2;
Обратите внимание на специальный тип данных "filename" в инструкции LOAD. Похоже, что это должно было случиться там, как только данные были загружены слишком поздно, чтобы вернуться к исходному имени файла.