hive 表字段中存在^A 分割符处理

今天接到一个问题,在hive表字段中存在 ^A 内容:

 

ANokia^A ^A ^A RM-356 ^A ^A/UCWEB8.9.0.253/50/999

 

实际为 0x01 linux的导出数据默认的分隔符

 

这样在处理这个字段的时候每次都会误以为多个字段,其实只有一个字段,于是决定写udf处理下这个字段:

 

udf:

public String evaluate(String cloumnvalue) {
		
		if(cloumnvalue == null){
			return null;
		}
		
		byte  b1[] = {0x01};  
		String str = new String(b1);   
		
		if(cloumnvalue.contains("^A")){
			return cloumnvalue.replace("^A", "");
		}else if(cloumnvalue.contains(str)){
			String tmp = cloumnvalue.replace(" "+str, "");
			tmp = tmp.replace(str+" ", "");
			return tmp.replace(str, "");
		}
		
		return cloumnvalue;
	}


首先把 0x01转换成字符串,然后在替换处理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值