我的加载功能应该对文件的年龄敏感,我只对最近1周内创建的文件感兴趣,文件夹中有30天的文件。
我对Pig相对较新,并且已经看过自定义加载器但是没有找到限制要加载的文件的选项。
任何帮助将不胜感激
由于
答案 0 :(得分:1)
请勿尝试在Pig中执行此操作。在Bash脚本中使用参数替换。如果在本地模式下以Pig运行,则可以使用find
命令获取文件:
#!/bin/bash
DIR=/path/to/directory/of/input/files
pig -p input="{$(find $DIR -maxdepth 1 -type f -mtime -7 | tr '\n' ',')}" myscript.pig
find $DIR
找到$DIR
。-maxdepth 1 -type f
确保您只考虑常规
您指定的目录中的文件(没有子目录)。-mtime -7
将商家信息限制为过去7天内修改过的文件。tr '\n' ','
将其转换为以逗号分隔的列表。然后,在myscript.pig
中,您会有data = LOAD '$input' AS (...);
如果您在群集上运行Pig,则需要使用hdfs dfs -ls
并对输出进行一些解析以获取文件名。