/** * It writes the field value to the Parquet RecordConsumer. It detects the field type, and writes * the correct write function. * * @param value The writable object that contains the value. * @param type Type that contains information about the type schema. */ private void writeValue(final Writable value, final Type type) { if (type.isPrimitive()) { writePrimitive(value); } else if (value instanceof ArrayWritable) { GroupType groupType = type.asGroupType(); OriginalType originalType = type.getOriginalType(); if (originalType != null && originalType.equals(OriginalType.LIST)) { writeArray((ArrayWritable) value, groupType); } else if (originalType != null && originalType.equals(OriginalType.MAP)) { writeMap((ArrayWritable) value, groupType); } else { writeGroup((ArrayWritable) value, groupType); } } else { throw new RuntimeException("Field value is not an ArrayWritable object: " + type); } }