【问题标题】:Loading relation from multiple directories从多个目录加载关系
【发布时间】:2016-09-26 13:05:40
【问题描述】:

如果我们有这样的目录结构:

/hdfs/foo
/hdfs/foo/foo1
/hdfs/foo/foo2

orc 文件位于 foo1 和 foo2 中。可以想象 foo 下可能有任意数量的子目录。 (它们是分区文件)。

如何将子目录中的所有文件加载到关系中?

我试过了:

relation = LOAD '/hdfs/foo' USING OrcStorage();

这不会给我一个错误,但该关系没有它应该包含的大部分数据。我真的不明白这是在做什么。

relation = LOAD '/hdfs/foo*' using OrcStorage();

这给我一个文件未找到异常。

relation = LOAD '/hdfs/foo/*' using OrcStorage();

这也会给我一个找不到文件的异常。

我做错了什么?

【问题讨论】:

    标签: apache-pig orc


    【解决方案1】:

    Pig 不允许在负载中使用通配符 (official document)。

    我们必须使用一些脚本或创建手册来做到这一点。

    你必须做 关系 = LOAD '/hdfs{/foo/file/foo/foo/file...)' 使用 OrcStorage();

    【讨论】:

      【解决方案2】:

      我怀疑 OrcStorage() 的问题,我尝试使用 PigStorage() 它对我有用..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-25
        • 1970-01-01
        • 2017-03-18
        • 2011-12-04
        • 2019-09-07
        • 2018-04-15
        相关资源
        最近更新 更多