我想知道如何从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
有些机构可以解释一下发生了什么,我该如何解决?
答案 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(',');