PIG:从文件夹加载特定文件

时间:2014-02-03 19:36:08

标签: load apache-pig

我的加载功能应该对文件的年龄敏感,我只对最近1周内创建的文件感兴趣,文件夹中有30天的文件。

我对Pig相对较新,并且已经看过自定义加载器但是没有找到限制要加载的文件的选项。

任何帮助将不胜感激

由于

1 个答案:

答案 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并对输出进行一些解析以获取文件名。