@Override
	public String interpretRowkey(String tableName, byte[] rowkey) {
		String type = MetaData.getRowKeyType(tableName);
		String[] types = type.split("\\,");
		byte[] v = rowkey;
		StringBuilder builder = new StringBuilder();
		for (int j=0, start=0;j<types.length;j++) {
			if (types[j].equalsIgnoreCase(DataType.INT.toString())) {
				builder.append(Bytes.toInt(Arrays.copyOfRange(v, start, start+4)))
						.append(",");
				start+=4;
			} else if (types[j].equalsIgnoreCase(DataType.LONG.toString())) {
				builder.append(Bytes.toLong(Arrays.copyOfRange(v, start, start+8)))
						.append(",");
				start+=8;
			} else if (types[j].equalsIgnoreCase(DataType.DOUBLE.toString())) {
				builder.append(Bytes.toDouble(Arrays.copyOfRange(v, start, start+8)))
				.append(",");
				start+=8;
			} else if (types[j].equalsIgnoreCase(DataType.BYTE.toString())) {
				Arrays.copyOfRange(v, start, start+1);
				start+=1;
			} else if (types[j].equalsIgnoreCase(DataType.STRING.toString())) {
				int len  = Bytes.toInt(Arrays.copyOfRange(v, start, start+4));
				start += 4;
				Arrays.copyOfRange(v, start, start+len);
				start+=len;
			} 
		}
		if (builder.length()>1) 
			builder.delete(builder.length()-1, builder.length());
		return builder.toString();
	}