我在外部表上插入了覆盖。我可以在外部表指向的底层位置看到新数据。但该表仍显示旧数据。
据我所知,外部表从底层目录中获取数据。但这不会发生在这里。
我该怎么办?
到目前为止我所尝试的内容如下:
desc temp_table;
id string
name string
designation string
partition column: date
alter table temp_table add columns(new_date string);
insert overwrite table temp_table partition(date) select id,name,designation,"some date" as new_date,date from temp_table;
答案 0 :(得分:0)
我尝试了很多但是coludnt找到了这个问题的答案。我使用替代方法完成了我的工作。我在这里分享,如果有人遇到同样的问题,他可以使用它。
1.创建表target_table_name,如source_table_name;
插入覆盖表target_table_name partition(partition_column_name)select * from source_table_name;
创建外部表another_table_name,如source_table_name,存储为file_format_of_source_table location' location_of_source_table';
msck修复表another_table;
然后你可以删除source_table并将another_table重命名为source_table_name。