从Pig脚本

时间:2016-02-04 10:21:04

标签: apache-pig

我想知道如何从Pig Script中的目录加载一些文件。

假设一个目录中有4个月的文件,这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 个答案:

答案 0 :(得分:1)

可能重复Load mutilple files over a date range in PIG

rec = LOAD '/home/dir/{2016-01-0{1,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(',');