簡體   English   中英

按日期范圍刪除配置單元分區

[英]Drop hive partition by date range

我在我的環境中使用hive-0.10.0-cdh-4.7.0。

我有一個名為test store的表作為序列文件,有一些分區由date_dim如下所示:

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')

我希望刪除這兩個分區:

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

看來hive drop partition只使用date_dim<='2014-07-30'條件。

反正有沒有按照我的意願制作蜂巢掉落分區?

您應該將字符串轉換為日期類型,為此您可以使用unix_timestamp函數:

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'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM