从多个目录加载关系

4szc88ey  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(256)

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

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

这也给我一个文件找不到异常。
我做错什么了?

yx2lnoni

yx2lnoni1#

我怀疑orcstorage()有问题,我试过pigstorage(),它对我有用。。

gt0wga4j

gt0wga4j2#

清管器不允许在装载过程中使用globbing(官方文件)。
我们必须使用一些脚本或手动创建。
必须使用orcstorage()执行relation=load'/hdfs{/foo/file/foo/foo/file…';

相关问题