加载时的子目录名称条件
Subdirectory name condition when loading
我在 HDFS 上的文件结构如下所示:
/dir/$YEAR/$MONTH/$DAY/$HOUR
例如
/dir/2016/03/03/05/file00.txt
保留 2016 年 3 月 3 日的所有文件05:00
当我 运行 我的 PIG 脚本时,我想加载某一天 在 某个小时之前的所有文件。
例如,当我运行
pig -p YEAR=2016 -p MONTH=03 -p DAY=03 -p HOUR=05 pig_script.pig
我希望脚本加载以下位置的所有文件:
/dir/2016/03/03/00/
/dir/2016/03/03/01/
/dir/2016/03/03/02/
/dir/2016/03/03/03/
/dir/2016/03/03/04/
但不包括 05:00 或当天的任何晚些时候。
有没有我可以使用的正则表达式?
希望得到一些帮助。
谢谢,
尤莉亚.
不完全是您要找的东西,但可能会有帮助。 PigStorage 支持参数:
-tagFile
-tagPath
https://pig.apache.org/docs/r0.12.0/api/org/apache/pig/builtin/PigStorage.html
那些会将文件和路径名添加到您的关系中。然后您可以轻松过滤掉您不感兴趣的目录中的行。
除了 运行 建议的内容,如果您正在寻找自定义行为,您可以使用自定义 Load/Store UDF 来实现您的逻辑。您可以将自定义输入参数(年、月、日、小时)传递给加载程序,以获取您想要的所有输入路径。
有关详细信息,请参阅 this。
我在 HDFS 上的文件结构如下所示:
/dir/$YEAR/$MONTH/$DAY/$HOUR
例如
/dir/2016/03/03/05/file00.txt
保留 2016 年 3 月 3 日的所有文件05:00
当我 运行 我的 PIG 脚本时,我想加载某一天 在 某个小时之前的所有文件。
例如,当我运行
pig -p YEAR=2016 -p MONTH=03 -p DAY=03 -p HOUR=05 pig_script.pig
我希望脚本加载以下位置的所有文件:
/dir/2016/03/03/00/
/dir/2016/03/03/01/
/dir/2016/03/03/02/
/dir/2016/03/03/03/
/dir/2016/03/03/04/
但不包括 05:00 或当天的任何晚些时候。
有没有我可以使用的正则表达式?
希望得到一些帮助。
谢谢,
尤莉亚.
不完全是您要找的东西,但可能会有帮助。 PigStorage 支持参数:
-tagFile
-tagPath
https://pig.apache.org/docs/r0.12.0/api/org/apache/pig/builtin/PigStorage.html
那些会将文件和路径名添加到您的关系中。然后您可以轻松过滤掉您不感兴趣的目录中的行。
除了 运行 建议的内容,如果您正在寻找自定义行为,您可以使用自定义 Load/Store UDF 来实现您的逻辑。您可以将自定义输入参数(年、月、日、小时)传递给加载程序,以获取您想要的所有输入路径。
有关详细信息,请参阅 this。