我正在处理来自一组文件的数据,这些文件包含日期戳作为文件名的一部分.文件中的数据不包含日期戳.我想处理文件名并将其添加到脚本中的一个数据结构中.有没有办法在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;
Run Code Online (Sandbox Code Playgroud)
请注意LOAD语句中的特殊"filename"数据类型.似乎它必须在那里发生,因为一旦数据被加载,回到源文件名已经太晚了.
apache-pig ×1