2017-05-09 50 views
0

我试图产生与蜂巢一些拼花文件,做到这一点我在蜂巢装一个普通蜂巢表从一些.tbl文件,throuh此命令:平面文件生成与蜂巢

CREATE TABLE地区( R_REGIONKEY BIGINT, R_NAME STRING, R_COMMENT STRING)

行格式DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE location'/ tmp/tpch-generate';

在此之后我只执行该2行:

创建表parquet_reion LIKE存储为PARQUET区域;

insert into parquet_region select * from region;

但是,当我检查在HDFS中生成的输出,我没有找到任何.parquet文件,intead我发现文件名称如0000_0到0000_21,并且它们的大小总和是原始tbl文件大得多。

我在做什么错了?

回答

1

插入语句不会创建带扩展名的文件,但这些是实木复合地址文件。

您可以使用DESCRIBE FORMATTED <table>来显示表格信息。

hive> DESCRIBE FORMATTED <table_name> 

附加说明:您也可以使用下面的查询源表创建新表:

CREATE TABLE new_test row STORED AS PARQUET AS select * from source_table 

这将创建新表镶木格式和复制结构和数据。

+0

谢谢你的回答。但为什么生成的总和大于原始文件?不应该木地板输出更小?在我的情况下,原始的tbl文件是〜230MB,生成的文件0000_0到0000_21每个98 MB,更大。 –

+0

它应该不大于原始文件。你可能会在同一个表中插入多个时间。你可以请重新检查桌子吗?请删除它删除所有旧文件,然后重新创建它。 –

+0

我删除了文件并删除了每个表格,甚至是数据库,并且再次完成了所有操作,但结果相同 –