下面是我的设想:
1.我从S3存储桶中的一个文件夹加载数据。让我们将此存储桶命名为“new_data”。
创建外部表格new_data(第1列字符串)行格式限定字段终止于'\t'位置's3://some-bucket/folder'
1.接下来,我从S3中的另一个文件夹加载数据,我们称之为“data_already_import”。
创建外部表格data_already_imported(第1列字符串)行格式限定字段终止于'\t'位置's3://某个存储桶/另一个文件夹'
1.然后,我找到new_data和data_already_imported之间的区别
按SELECT * FROM创建表差异(SELECT n.* FROM新数据n左外连接数据已导入旧ON n.列1 =旧.列1,其中旧.列1为NULL)i;
现在,我想将此“差异”移动到data_already_imported文件夹中。
INSERT INTO TABLE data_already_imported
SELECT * FROM difference;
问题是这会覆盖data_already_imported中已经存在的数据。我也用INSERT OVERWRITE
试过了,有没有人能指出我在这里做错了什么?
1条答案
按热度按时间iyzzxitl1#
在Hive中,没有向已填充的表追加记录这样的操作,您必须创建另一个表(假设名称为
new_data_already_imported
),然后执行以下操作: