我有一个外部配置单元表员工,它由 extract_timestamp (yyyy-mm-dd hh:mm:ss) 分区,如下所示。
empid empname extract_time
1 abc 2019-05-17 00:00:00
2 def 2019-05-18 14:21:00
我正在尝试通过 extract_time 删除分区并将其更改为年、月和日分区。我正在遵循以下方法。
1. 新建表employee_new,分区年月日
create external table employee_new
(empid int,
empname string
)
partitioned by (year int,month int,day int)
location '/user/emp/data/employee_new.txt';
2. 通过从员工表中选择数据将覆盖插入到employee_new
insert overwrite into employee_new as select*,year(extract_time),month(extract_time)
,day(extract_time)
from employee
3. 删除employee 和employee_new 并在/user/emp/data/employee_new.txt 之上创建employee 表
请让我知道这种方法是否有效,以及是否有更好的方法可以做到这一点。