in hive/src/main/java/org/elasticsearch/hadoop/hive/HiveWritableValueWriter.java [51:97]
public Result write(Writable writable, Generator generator) {
if (writable instanceof ByteWritable) {
generator.writeNumber(((ByteWritable) writable).get());
}
else if (writable instanceof DoubleWritable) {
generator.writeNumber(((DoubleWritable) writable).get());
}
else if (writable instanceof ShortWritable) {
generator.writeNumber(((ShortWritable) writable).get());
}
// HiveDecimal - Hive 0.11+
else if (writable != null && HiveConstants.DECIMAL_WRITABLE.equals(writable.getClass().getName())) {
generator.writeString(writable.toString());
}
// pass the UNIX epoch
else if (writable instanceof TimestampWritable) {
long ts = ((TimestampWritable) writable).getTimestamp().getTime();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(ts);
generator.writeString(DatatypeConverter.printDateTime(cal));
}
// HiveDate - Hive 0.12+
else if (writable != null && HiveConstants.DATE_WRITABLE.equals(writable.getClass().getName())) {
generator.writeString(DateWritableWriter.toES(writable));
}
// HiveVarcharWritable - Hive 0.12+
else if (writable != null && HiveConstants.VARCHAR_WRITABLE.equals(writable.getClass().getName())) {
generator.writeString(writable.toString());
}
// HiveChar - Hive 0.13+
else if (writable != null && HiveConstants.CHAR_WRITABLE.equals(writable.getClass().getName())) {
generator.writeString(StringUtils.trim(writable.toString()));
}
// TimestampWritableV2 - Hive 2.0+
else if (writable != null && HiveConstants.TIMESTAMP_WRITABLE_V2.equals(writable.getClass().getName())) {
generator.writeString(TimestampV2Writer.toES(writable));
}
// DateWritableV2 - Hive 2.0+
else if (writable != null && HiveConstants.DATE_WRITABLE_V2.equals(writable.getClass().getName())) {
generator.writeString(DateWritableWriterV2.toES(writable));
}
else {
return super.write(writable, generator);
}
return Result.SUCCESFUL();
}