in odps-sdk-impl/odps-common-local/src/main/java/com/aliyun/odps/local/common/utils/TypeConvertUtils.java [33:69]
public static String toString(Object value, TypeInfo typeInfo) {
Object javaVal = transOdpsToJava(value, typeInfo);
if (javaVal == null) {
return Constants.NULL_TOKEN;
}
String rawVal;
switch (typeInfo.getOdpsType()) {
case BIGINT:
case BOOLEAN:
case DOUBLE:
case DECIMAL:
case TINYINT:
case SMALLINT:
case INT:
case FLOAT:
case CHAR:
case VARCHAR:
case DATE:
case TIMESTAMP:
case STRING:
case DATETIME:
case BINARY:
rawVal = javaVal.toString();
break;
case INTERVAL_DAY_TIME:
case INTERVAL_YEAR_MONTH:
case STRUCT:
case MAP:
case ARRAY:
rawVal = new GsonBuilder().disableHtmlEscaping().create().toJson(javaVal);
break;
default:
throw new RuntimeException(" Unknown column type: " + typeInfo.getOdpsType());
}
//Encode:replace \N with "\N", exception column is null
return rawVal.replaceAll("\\\\N", "\"\\\\N\"");
}