Impala - 替换表格分区中的所有数据

时间:2017-04-20 15:53:03

标签: hadoop cloudera-cdh impala

我有一个程序可以生成有关Impala表分区的所有数据。该程序将数据写入HDFS文本文件。

如何(物理地)删除以前属于该分区的所有数据,并将其替换为以Parquet格式转换的新文本文件中的数据?

如果我使用原始HDFS API物理删除构成分区的旧Parquet文件,是否会打扰Impala?

1 个答案:

答案 0 :(得分:1)

为您的文本文件创建表格:

create external table stg_table (...) location '<your text file in hdfs>';

外部数据更改后,您必须刷新它:

refresh stg_table;

然后插入目标表

insert overwrite table target_table select * from stg_table;

如果目标表已分区,请执行以下操作:

insert overwrite table target_table partiton(<partition spec>) select * from stg_table;

关键字&#39;覆盖&#39;诀窍,它覆盖表或分区。