如果我们有这样的目录结构:
/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();
这也让我找到了一个未找到文件的例外。
我做错了什么?
答案 0 :(得分:0)
Pig不允许在加载中使用globbing(official document)。
我们必须使用一些脚本或创建手册来完成此操作。
你必须这样做 relation = LOAD' / hdfs {/ foo / file / foo / foo / file ...)'使用OrcStorage();答案 1 :(得分:0)
我怀疑它与OrcStorage()的问题,我尝试使用PigStorage()为我工作..