Я обрабатываю данные из набора файлов, которые содержат штамп даты как часть имени файла.Данные в файле не содержат отметку даты.Я хотел бы обработать имя файла и добавить его к одной из структур данных в сценарии.Есть ли способ сделать это в 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.Похоже, это должно было произойти, поскольку после загрузки данных уже слишком поздно возвращаться к исходному имени файла.