2011-12-16 50 views
2

我目前正在创建一个外部表像:hive创建表文件名000000_0?

CREATE EXTERNAL TABLE site_datatype (
.... 
yada yada 
.... 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 
LOCATION '/user/accounting/summary/2011-12-15/site_datatype.result' 

,而不是创建一个名为“site_datatype.result”在它的内容当我运行插入覆盖表中选择文件,但是,它会创建一个目录“site_datatype.result”中有一个名为“000000_0”的文件(虽然内容正确)。

这是应该这样工作吗?如果是的话,我该如何解决这个问题(内部配置单元)才能以我需要的方式完成它?

感谢, 马里奥

回答

3

蜂巢工作在目录级别,因此多减速器可以迅速倾倒成果转化为HDFS。如果要在文件级别运行,则必须将其发送到单个Reducer以合并到单个文件中,从而增加了不必要的瓶颈。

如果您绝对需要单个文件中的Hive表中的数据,则可以将reducer的数量设置为1,然后查询您的数据并将其推送到新的表或目录(通过Insert Overwrite)。

另一种选择是从HDFS(hadoop fs -get hive/warehouse/sampletable /。)中获取表格,然后将所有文件重新组合到一起。

+0

好吧,我怀疑这样的事情。谢谢! – Mario 2011-12-18 12:22:46