中易网

Hive 修改表添加分区和 加载数据时添加分区 的区别

答案:1  悬赏:80  
解决时间 2021-01-15 10:03
  • 提问者网友:雨不眠的下
  • 2021-01-14 13:38
Hive 修改表添加分区和 加载数据时添加分区 的区别
最佳答案
  • 二级知识专家网友:洒脱疯子
  • 2021-01-14 14:32
假定有hive中有两个表empl_inn(管理表)和empl_ext(外部表),他们都有分区(logdate string);
1.对于外部表 empl_ext
alter table empl_ext add partition (logdate=‘2015-02-26’) location ‘hdfs://nameservice1/vod_pb/’; 执行添加分区时 vod_pb/ 文件夹下的数据不会被移动。并且没有分区目录logdate=2015-02-26
alter table empl_ext drop partition (logdate=‘2015-02-26’); 执行删除分区目录时vod_pb/ 下的数据不会被删除

load data inpath 'hdfs://nameservice1/vod_pb/' overwrite into table empl_ext partition(logdate='2015-02-26');
执行加载数据添加分区时 vod_pb/ 文件夹下的数据会被移动,并创建分区目录logdate=2015-02-26,数据移动到此目录下
alter table empl_ext drop partition (logdate=‘2015-02-26’); 执行删除分区目录时,已经创建logdate=2015-02-26
分区目录不会被删除,其文件夹下的数据也不会被删除;、
2.对于内部表 empl_inn
alter table empl_inn add partition (logdate=‘2015-02-26’) location ‘hdfs://nameservice1/vod_pb/’; 执行添加分区时 vod_pb/ 文件夹下的数据不会被移动。并且没有分区目录logdate=2015-02-26
alter table empl_inn drop partition (logdate=‘2015-02-26’); 执行删除分区时vod_pb/ 下的数据会被删除并且连同vod_pb/文件夹也会被删除追答load data inpath 'hdfs://nameservice1/vod_pb/' overwrite into table empl_inn partition(logdate='2015-02-26');
执行加载数据添加分区时 vod_pb/ 文件夹下的数据会被移动,并创建分区目录logdate=2015-02-26,数据移动到此目录下
alter table empl_inn drop partition (logdate=‘2015-02-26’); 执行删除分区目录时,已经创建logdate=2015-02-26/
分区目录会被删除,其文件夹下的数据随之会被删除;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息