【问题标题】:Apache pig load multiple filesApache pig加载多个文件
【发布时间】:2017-03-10 21:57:08
【问题描述】:

我有以下文件夹结构,其中包含遵循相同架构的内容 -

/project/20160101/part-v121
/project/20160105/part-v121
/project/20160102/part-v121
/project/20170104/part-v121

我已经实现了一个 pig 脚本,它使用 JSONLoader 来加载和处理单个文件。但是,我需要使其通用以读取日期文件夹下的所有文件。

现在我已经设法使用以下方法提取文件路径 -

hdfs -ls hdfs://local:8080/project/20* > /tmp/ei.txt
cat /tmp/ei.txt | awk '{print $NF}' | grep part > /tmp/res.txt

现在我需要知道如何将此列表传递给 pig 脚本,以便我的程序在所有文件上运行。

【问题讨论】:

    标签: apache-pig


    【解决方案1】:

    我们可以在 LOAD 语句中使用正则表达式路径。

    在您的情况下,以下陈述应该会有所帮助,如果您遇到任何问题,请告诉我。

    A = LOAD 'hdfs://local:8080/project/20160102/*' USING JsonLoader();
    

    假设输入目录中有 .pig_schema(由 JsonStorage 生成)。

    参考https://pig.apache.org/docs/r0.10.0/func.html#jsonloadstore

    【讨论】:

    • 早该提过。我正在使用 com.twitter.elephantbird.pig.load.JsonLoader。这也适用于象鸟。
    • 不确定,试试看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多