Hive 按日期范围删除配置单元分区
我在我的环境中使用hive-0.10.0-cdh-4.7.0 我有一个名为test store as sequence file的表和一些按日期划分的分区,如下所示:Hive 按日期范围删除配置单元分区,hive,Hive,我在我的环境中使用hive-0.10.0-cdh-4.7.0 我有一个名为test store as sequence file的表和一些按日期划分的分区,如下所示: game=Test/date_dim=2014-07-01 game=Test/date_dim=2014-07-11 game=Test/date_dim=2014-07-21 game=Test/date_dim=2014-07-31 我想在SQL命令中删除2014-07-21和2014-07-30之
game=Test/date_dim=2014-07-01
game=Test/date_dim=2014-07-11
game=Test/date_dim=2014-07-21
game=Test/date_dim=2014-07-31
我想在SQL命令中删除2014-07-21和2014-07-30之间的分区:
alter table test drop partition (date_dim>='2014-07-11',date_dim<='2014-07-30')
但实际上,这3个分区必须删除:
game=Test/date_dim=2014-07-11
game=Test/date_dim=2014-07-21
game=Test/date_dim=2014-07-01
game=Test/date_dim=2014-07-11
game=Test/date_dim=2014-07-21
配置单元删除分区似乎只使用
date\u dim您应该将字符串转换为日期类型,为此,您可以使用unix\u时间戳函数:
alter table test drop partition (unix_timestamp(date_dim,'yyyy-MM-dd')>=unix_timestamp('2014-07-11','yyyy-MM-dd'),unix_timestamp(date_dim,'yyyy-MM-dd')<=unix_timestamp('2014-07-30','yyyy-MM-dd'))
alter table test drop partition(unix_timestamp,date_dim,'yyyyy-MM-dd')>=unix_timestamp('2014-07-11','yyyyy-MM-dd')、unix_timestamp(date_dim,'yyyyyyy-MM-dd')、unix_timestamp(date dim,'yyyyyyyy-MM-dd')我遇到了错误。知道如何解决这个错误吗?alter table isso_evt_vw vw_vw_-drop分区(unix_timestamp,loaddate,'yyyyyy;错误:编译语句时出错:失败:ParseException行1:59不匹配的输入“(”在drop partition语句中应设置null(状态=42000,代码=40000)。请确保loaddate字段具有适当的类型。字符串,时间戳vs。