批量给hive的表加分区

要实现如下需求:

批量给hive的表加分区,分区都是这样的格式 dt=“2012-07-01”
加分区的语句如下:
use test;ALTER TABLE another_sku_uv ADD IF NOT EXISTS PARTITION (dt='2012-07-12') LOCATION '/user/test/warehouse/mid.db/sku_uv/dt=2012-07-12';
 
现在在/user/test/warehouse/mid.db/sku_uv/ 下面有从2012-07-01 -- 2012-12-31 的分区数据.如何批量添加分区呢?
我想到了用shell。
#!/bin/bash 
#set -e
for ((i=0;i<190;i++))
do
#d=`date -d " - 1 day" '+%Y-%m-%d'`
s=`date -d "2012-07-01" +%s`
#echo "$s"
let "t=$s+$i*86400"
m=`date -d "@$t"`
d=`date -d "$m" '+%Y-%m-%d'`
if [ "$d" = 2013-01-01 ]; then
exit 0;
else
hive -e "use default;ALTER TABLE another_sku_uv ADD IF NOT EXISTS PARTITION (dt='$d') LOCATION '/user/test/warehouse/mid.db/sku_uv/dt=$d'"
fi
done

 

posted @ 2013-03-13 12:18  QG.xiaoguang  阅读(1234)  评论(0编辑  收藏  举报