in connectors/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TSFRecordReader.java [185:227]
public static void readFieldsValue(
MapWritable mapWritable, List<Field> fields, List<String> measurementIds)
throws InterruptedException {
int index = 0;
for (Field field : fields) {
if (field == null || field.getDataType() == null) {
logger.info("Current value is null");
mapWritable.put(new Text(measurementIds.get(index)), NullWritable.get());
} else {
switch (field.getDataType()) {
case INT32:
mapWritable.put(new Text(measurementIds.get(index)), new IntWritable(field.getIntV()));
break;
case INT64:
mapWritable.put(
new Text(measurementIds.get(index)), new LongWritable(field.getLongV()));
break;
case FLOAT:
mapWritable.put(
new Text(measurementIds.get(index)), new FloatWritable(field.getFloatV()));
break;
case DOUBLE:
mapWritable.put(
new Text(measurementIds.get(index)), new DoubleWritable(field.getDoubleV()));
break;
case BOOLEAN:
mapWritable.put(
new Text(measurementIds.get(index)), new BooleanWritable(field.getBoolV()));
break;
case TEXT:
mapWritable.put(
new Text(measurementIds.get(index)),
new Text(field.getBinaryV().getStringValue(TSFileConfig.STRING_CHARSET)));
break;
default:
logger.error("The data type is not support {}", field.getDataType());
throw new InterruptedException(
String.format("The data type %s is not support ", field.getDataType()));
}
}
index++;
}
}