【问题标题】:Loading selected files from a directory in Pig script从 Pig 脚本中的目录加载选定的文件
【发布时间】: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

有人能解释一下发生了什么吗?我该如何解决这个问题?

【问题讨论】:

    标签: apache-pig


    【解决方案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(',');
    

    【讨论】:

    • 您的建议有效。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-02-13
    • 2012-12-08
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多