Estoy procesando datos de un conjunto de archivos que contienen un sello de fecha como parte del nombre de archivo. Los datos dentro del archivo no contienen el sello de fecha. Me gustaría procesar el nombre del archivo y agregarlo a una de las estructuras de datos dentro del script. ¿Hay alguna manera de hacerlo dentro de Pig Latin (una extensión de PigStorage, tal vez?) O ¿necesito preprocesar todos los archivos usando Perl o similares de antemano?¿Cómo puedo incorporar el nombre de archivo actual en mi script de Pig Latin?
Me imagino algo como lo siguiente:
-- 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;
Nota el "nombre de archivo" especial tipo de datos en la declaración de carga. Parece que tendría que ocurrir allí, ya que una vez que los datos se han cargado, es demasiado tarde para volver al nombre del archivo de origen.