我有一个表database1.table1
表" database1.table1'有2列和一个分区列:columnA,columnB由columnC
分区我需要创建一个表" database2.table2'没有分区但有两列columnA,columnB。我需要将database1.table1中的数据复制到database2.table2中(不删除database1.table1中的任何数据)
我尝试了以下但数据被移动了。我需要复制数据
CREATE TABLE DATABASE2.TABLE2
SELECT COLUMNA, COLUMNB
FROM DATABASE1.TABLE1
注意:我需要包含实际数据的表,我无法创建EXTERNAL表。
答案 0 :(得分:1)
您应该能够按照您所说的方式复制数据。只需添加' AS'。见the CREATE AS SELECT documentation。 你说的是数据被移动了,但那是不可能的。 CREATE AS SELECT将触发map reduce作业。请注意文档 你也可以改变数据格式,使用不同的serde,和 你自己的分区(或没有分区,就像你要问的那样)。
USE database2;
CREATE TABLE table2
AS SELECT columna,columnb
FROM database1.table1