Przetwarzam dane z zestawu plików zawierających datownik jako część nazwy pliku. Dane w pliku nie zawierają znacznika daty. Chciałbym przetworzyć nazwę pliku i dodać go do jednej ze struktur danych w skrypcie. Czy jest jakiś sposób, aby to zrobić w Pig Latin (może być rozszerzeniem do PigStorage?) Lub czy muszę wstępnie przetworzyć wszystkie pliki używając Perla lub podobnego?Jak mogę wprowadzić bieżącą nazwę pliku wejściowego do mojego skryptu łacińskiego?
mogę sobie wyobrazić coś jak następuje:
-- 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;
zanotować specjalne „filename” typ danych w sprawozdaniu obciążenia. Wygląda na to, że musi się tam zdarzyć, ponieważ po załadowaniu danych jest już za późno, aby powrócić do źródłowej nazwy pliku.