Search in sources :

Example 1 with GroupBuilder

use of org.apache.parquet.schema.Types.GroupBuilder in project parquet-mr by apache.

the class ProtoSchemaConverter method addField.

private <T> Builder<? extends Builder<?, GroupBuilder<T>>, GroupBuilder<T>> addField(Descriptors.FieldDescriptor descriptor, GroupBuilder<T> builder) {
    Type.Repetition repetition = getRepetition(descriptor);
    JavaType javaType = descriptor.getJavaType();
    switch(javaType) {
        case BOOLEAN:
            return builder.primitive(BOOLEAN, repetition);
        case INT:
            return builder.primitive(INT32, repetition);
        case LONG:
            return builder.primitive(INT64, repetition);
        case FLOAT:
            return builder.primitive(FLOAT, repetition);
        case DOUBLE:
            return builder.primitive(DOUBLE, repetition);
        case BYTE_STRING:
            return builder.primitive(BINARY, repetition);
        case STRING:
            return builder.primitive(BINARY, repetition).as(UTF8);
        case MESSAGE:
            {
                GroupBuilder<GroupBuilder<T>> group = builder.group(repetition);
                convertFields(group, descriptor.getMessageType().getFields());
                return group;
            }
        case ENUM:
            return builder.primitive(BINARY, repetition).as(ENUM);
        default:
            throw new UnsupportedOperationException("Cannot convert Protocol Buffer: unknown type " + javaType);
    }
}
Also used : JavaType(com.google.protobuf.Descriptors.FieldDescriptor.JavaType) MessageType(org.apache.parquet.schema.MessageType) Type(org.apache.parquet.schema.Type) JavaType(com.google.protobuf.Descriptors.FieldDescriptor.JavaType) FLOAT(org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.FLOAT) GroupBuilder(org.apache.parquet.schema.Types.GroupBuilder)

Aggregations

JavaType (com.google.protobuf.Descriptors.FieldDescriptor.JavaType)1 MessageType (org.apache.parquet.schema.MessageType)1 FLOAT (org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.FLOAT)1 Type (org.apache.parquet.schema.Type)1 GroupBuilder (org.apache.parquet.schema.Types.GroupBuilder)1