从多个目录

时间:2016-09-23 21:33:25

标签: apache-pig orc

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

/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();

这也让我找到了一个未找到文件的例外。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

Pig不允许在加载中使用globbing(official document)。

我们必须使用一些脚本或创建手册来完成此操作。

你必须这样做 relation = LOAD' / hdfs {/ foo / file / foo / foo / file ...)'使用OrcStorage();

答案 1 :(得分:0)

我怀疑它与OrcStorage()的问题,我尝试使用PigStorage()为我工作..