批量给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