in spark-load/spark-load-dpp/src/main/java/org/apache/doris/load/loadv2/dpp/DppUtils.java [174:206]
public static ByteBuffer getHashValue(Object o, DataType type) {
ByteBuffer buffer = ByteBuffer.allocate(8);
buffer.order(ByteOrder.LITTLE_ENDIAN);
if (o == null) {
buffer.putInt(0);
return buffer;
}
if (type.equals(DataTypes.ByteType)) {
buffer.put((byte) o);
} else if (type.equals(DataTypes.ShortType)) {
buffer.putShort((Short) o);
} else if (type.equals(DataTypes.IntegerType)) {
buffer.putInt((Integer) o);
} else if (type.equals(DataTypes.LongType)) {
buffer.putLong((Long) o);
} else if (type.equals(DataTypes.StringType)) {
try {
String str = String.valueOf(o);
buffer = ByteBuffer.wrap(str.getBytes("UTF-8"));
} catch (Exception e) {
throw new RuntimeException(e);
}
} else if (type.equals(DataTypes.BooleanType)) {
Boolean b = (Boolean) o;
byte value = (byte) (b ? 1 : 0);
buffer.put(value);
}
// do not flip buffer when the buffer was created by wrap()
if (!type.equals(DataTypes.StringType)) {
buffer.flip();
}
return buffer;
}