我目前在将文件夹内容添加到 Hives 不受信任的缓存时遇到问题。我可以使用以下方法成功地将多个文件添加到 Hive 中的分布式缓存:
ADD FILE /folder/file1.ext;
ADD FILE /folder/file2.ext;
ADD FILE /folder/file3.ext;
etc.
.
我还看到有一个ADD FILES
(复数)选项,在我看来这意味着您可以指定一个目录,例如:ADD FILES /folder/;
并且文件夹中的所有内容都被包含在内(这适用于 Hadoop Streaming -files 选项)。但这不适用于 Hive。现在我必须明确添加每个文件。
我做错了吗?有没有办法将整个文件夹的内容放到分布式缓存中。
PS我尝试了通配符ADD FILE /folder/*
,ADD FILES /folder/*
但也失败了。
编辑:
从 hive 0.11 开始,现在支持这样:
ADD FILE /folder
现在工作。
我正在使用的是将文件夹位置作为参数传递给配置单元脚本,因此:
$ hive -f my-query.hql -hiveconf folder=/folder
在 my-query.hql 文件中:
ADD FILE ${hiveconf:folder}
现在又漂亮又整洁!