从 Pig 脚本中的目录加载选定的文件
Posted
技术标签:
【中文标题】从 Pig 脚本中的目录加载选定的文件【英文标题】:Loading selected files from a directory in Pig script 【发布时间】:2016-02-04 10:21:03 【问题描述】:我想知道如何从 Pig Script 的目录中加载一些文件。
假设一个目录中有4个1月份的文件,这4个文件名如下
2016-01-01.txt
2016-01-02.txt
2016-01-03.txt
2016-01-04.txt
现在我的要求是读取 2016-01-01 到 2016-01-03 的文件,这意味着获取 2016 年 1 月的前 3 个文件 ..
我的猪脚本:
下面这行有效:
rec = LOAD '/home/dir/2016-01-01*,2016-01-02*,2016-01-03*' USING PigStorage(',');
下面这行不起作用:
rec = LOAD '/home/dir/2016-01-01*-03*' USING PigStorage(',');
我收到以下错误。我在 MAPR 集群中使用 Pig 0.14
N/A file_records MAP_ONLY Message: org.apache.pig.backend.executionengine.ExecException: ERROR 2118: Input Pattern maprfs:///home/dir/2016-01-01*-03* matches 0 files. Paths with components .*, _* were skipped.
0 additional path filters were applied
有人能解释一下发生了什么吗?我该如何解决这个问题?
【问题讨论】:
【参考方案1】:可能重复Load mutilple files over a date range in PIG
rec = LOAD '/home/dir/2016-01-01,2,3*' USING PigStorage(',');
或
rec = LOAD '/home/dir/2016-01-01,02,03*' USING PigStorage(',');
或
rec = LOAD '/home/dir/2016-01-0[1-3]*' USING PigStorage(',');
【讨论】:
您的建议有效。非常感谢!以上是关于从 Pig 脚本中的目录加载选定的文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 apache pig 在 hadoop 集群上加载文件?