从pig脚本中的目录加载选定的文件

3htmauhk  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(225)

我想知道如何从Pig脚本的目录加载一些文件。
假设一月一个目录中有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个文件。。
我的Pig剧本:
下面这条线工作:

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集群中使用pig0.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

有人能告诉我发生了什么事,我该怎么解决这个问题吗?

vm0i2vca

vm0i2vca1#

在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(',');

相关问题