我有一个程序可以生成有关Impala表分区的所有数据。该程序将数据写入HDFS文本文件。
如何(物理地)删除以前属于该分区的所有数据,并将其替换为以Parquet格式转换的新文本文件中的数据?
如果我使用原始HDFS API物理删除构成分区的旧Parquet文件,是否会打扰Impala?
答案 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;诀窍,它覆盖表或分区。