package mobvista.dmp.util;

import java.io.IOException;

import org.apache.hadoop.hive.serde2.columnar.BytesRefArrayWritable;
import org.apache.hadoop.hive.serde2.columnar.BytesRefWritable;
import org.apache.hadoop.io.Text;

public class BytesRefUtil {

	public static String BytesRefWritableToString(BytesRefWritable b){
		Text txt=new Text();
		try {
			txt.set(b.getData(), b.getStart(), b.getLength());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return txt.toString();
	}
	public static BytesRefArrayWritable createRcOutValue(String src) {
		String[] datas = src.split("\t");
		BytesRefArrayWritable reduceValue = new BytesRefArrayWritable();
		BytesRefWritable[] arr = new BytesRefWritable[datas.length];
		for (int j = 0; j < arr.length; j++) {
			arr[j] = new BytesRefWritable();
			arr[j].set(datas[j].getBytes(), 0, datas[j].getBytes().length);
			reduceValue.set(j, arr[j]);
		}
		return reduceValue;
	}
	
	//二进制数组输出
	public static String braw2str(BytesRefArrayWritable braw) {
		StringBuilder strb = new StringBuilder();
		for (int i = 0; i < braw.size(); i++) {
			strb.append(BytesRefWritableToString(braw.get(i))).append("\t");
		}
		strb.delete(strb.length() - 1, strb.length());
		return strb.toString();
	}
	
}