hive删除partition遇到的编码、转义问题
来源:互联网 发布:基本有序 排序算法 编辑:程序博客网 时间:2024/06/08 12:01
问题:
线上出现垃圾数据,由于数据进hive采用的是dynamic partition,这些垃圾数据有些是partiition字段
like:
>show partitions dpdw_traffic_base;
hp_stat_time=234123417234719237491/hp_log_type=0/hp_host=__HIVE_DEFAULT_PARTITION__/hp_from_type=__HIVE_DEFAULT_PARTITION__
hp_stat_time=r_ready%3D407;r_load%3D641/hp_log_type=0/hp_host=__HIVE_DEFAULT_PARTITION__/hp_from_type=__HIVE_DEFAULT_PARTITION__
hp_stat_time=r_ready%3D438;r_load%3D797/hp_log_type=0/hp_host=__HIVE_DEFAULT_PARTITION__/hp_from_type=__HIVE_DEFAULT_PARTITION__
.......
写了一个脚本清除垃圾数据:
#!/bin/shpname=`hadoop fs -ls /user/hive/warehouse/bi.db/dpdw_traffic_base | awk '{print $NF}' | awk '{gsub(/\/user\/hive\/warehouse\/bi.db\/dpdw_traffic_base\/hp_stat_time=/,"",$0); print $0}'`for i in $pnamedo len=`expr length $i` if [ $len -ne 10 -a $i != '__HIVE_DEFAULT_PARTITION__' -a $i != 'items' ] then name="hdfs://10.2.6.102/user/hive/warehouse/bi.db/dpdw_traffic_base/hp_stat_time="$i hadoop fs -rmr $name hive -e "use bi; alter table dpdw_traffic_base drop partition(hp_stat_time='$i')" fidone
出现问题,类似于:
hp_stat_time=r_ready%3D407;r_load%3D641
的partition无法删除
跟进后发现hive会自动对一些字符进行UTF-8编码,此处%3D解码后是'='
另外‘;’ 需要被转义
so:
dpdw_traffic_base的partition:
hp_stat_time=r_ready%3D91;r_load%3D351/hp_log_type=0/hp_host=http%3A%2F%2Fwww.dianping.com%2Fsearch%2Fkeyword%2F10%2F0_%25E9%259B%2581%25E8%258D%25A1%25E6%2583%2585/hp_from_type=__HIVE_DEFAULT_PARTITION__
正确的删除语句是:
> alter table dpdw_traffic_base drop partition(hp_stat_time='r_ready=91\;r_load=351');
Dropping the partition hp_stat_time=r_ready%3D91;r_load%3D351/hp_log_type=0/hp_host=http%3A%2F%2Fwww.dianping.com%2Fsearch%2Fkeyword%2F10%2F0_%25E9%259B%2581%25E8%258D%25A1%25E6%2583%2585/hp_from_type=__HIVE_DEFAULT_PARTITION__
OK
- hive删除partition遇到的编码、转义问题
- hive sql遇到的问题
- hive安装遇到的问题
- hive使用遇到的问题
- hive partition的使用
- replaceAll时遇到的$转义问题
- hive partition字段异常字符导致的问题
- 数字签名遇到的编码问题
- PHP编码遇到的问题
- POP3遇到的编码问题
- hive中Partition的详解
- 安装配置hive中遇到的问题
- Hive+mySql遇到的问题和解决办法
- hive使用中遇到的问题2
- Hive安装及遇到的问题
- Hive安装过程遇到的问题
- java api操作hive遇到的问题
- hive启动过程遇到的问题
- 第十六周—指来指去2
- 屏蔽JS出错的显示
- JAVA数据类型转换
- ibatis2.0+sqlserver200环境搭建
- 解析网络管理与网络管理软件
- hive删除partition遇到的编码、转义问题
- .NET 中获取两个日期相差时间
- linux 快速登录方法u盘系统制作—livecd制作iso
- fedora13下安装并体验kde,对比gnome
- Ubuntu 桌面快捷键
- 内存不足引起的SIGKILL:一个缓冲区不断增长问题的定位与解决(解释SIGKILL原因)
- 开源 免费 java CMS - FreeCMS技术架构
- 开发者网站
- android系统移植emmc记录(2)--u-boot烧写emmc方式