1. 程式人生 > >hive 表字段中存在^A 分割符處理

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轉換成字串,然後在替換處理