private void writeValue(Column column, Tuple tuple, int index) { switch (column.getDataType().getType()) { case BOOLEAN: recordConsumer.addBoolean(tuple.getBool(index)); break; case BIT: case INT2: case INT4: recordConsumer.addInteger(tuple.getInt4(index)); break; case INT8: recordConsumer.addLong(tuple.getInt8(index)); break; case FLOAT4: recordConsumer.addFloat(tuple.getFloat4(index)); break; case FLOAT8: recordConsumer.addDouble(tuple.getFloat8(index)); break; case CHAR: if (tuple.size(index) > column.getDataType().getLength()) { throw new ValueTooLongForTypeCharactersException(column.getDataType().getLength()); } recordConsumer.addBinary(Binary.fromByteArray(tuple.getTextBytes(index))); break; case TEXT: recordConsumer.addBinary(Binary.fromByteArray(tuple.getTextBytes(index))); break; case DATE: // Parquet DATE type is based on Unix Epoch(Jan 1, 1970). recordConsumer.addInteger(tuple.getInt4(index) - DateTimeConstants.UNIX_EPOCH_JDATE); break; case PROTOBUF: case BLOB: recordConsumer.addBinary(Binary.fromByteArray(tuple.getBytes(index))); break; default: break; } }
@Override public void writeValue(RecordConsumer recordConsumer) { recordConsumer.addFloat(value); }