hdfs中的下一个目录结构是:
logs_folder
|---2021-03-01
|---log1
|---log2
|---log3
2021-03-02
|---log1
|---log2
2021-03-03
|---log1
|---log2
...
日志由文本数据组成。数据中没有日期,因为它已在文件夹名称中。我要读取所有日志并按以下格式保存它们:
date id
where id-日志中的字段,但我需要从文件夹名称中获取日期。预期产量:
2021-03-01 id1
2021-03-01 id2
...
2021-03-02 id234
2021-03-02 id456
...
如何将文件夹名称中的日期添加到输出中?
我发现了一个问题:如何在读取时向数据添加完整路径名:
A = LOAD '/logs_folder/*' using PigStorage(',','-tagPath');
DUMP A ;
如何将当前输入文件名合并到pig拉丁语脚本中?
它非常接近,但是如何只获取父文件夹名而不是完整路径?
1条答案
按热度按时间ymdaylpp1#
最后我用了这个方法:
使用“-tagpathz属性加载数据-它将列添加到加载的数据中,并包含每个文件的完整路径
仅使用regex筛选父文件夹
代码示例:
我的数据由3个字段组成-id,feature,value,但是你可以看到其中有4个-
filepath
字段已添加!