更改基础目录内容数据时更新外部表

时间:2017-10-29 13:00:57

标签: hive hiveql

我在外部表上插入了覆盖。我可以在外部表指向的底层位置看到新数据。但该表仍显示旧数据。

据我所知,外部表从底层目录中获取数据。但这不会发生在这里。

我该怎么办?

到目前为止我所尝试的内容如下:

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;

1 个答案:

答案 0 :(得分:0)

我尝试了很多但是coludnt找到了这个问题的答案。我使用替代方法完成了我的工作。我在这里分享,如果有人遇到同样的问题,他可以使用它。

1.创建表target_table_name,如source_table_name;

  1. 插入覆盖表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。