return Types.buildGroup(fieldType.getRepetition()) .addFields(typesArray) .named(fieldType.getName()); subFieldType = getProjectedType(elemType, subFieldType); return Types.buildGroup(Repetition.OPTIONAL).as(OriginalType.LIST).addFields( subFieldType).named(fieldType.getName());
@Override public TypeMapping visit(Struct_ type) { List<TypeMapping> parquetTypes = fromArrow(children); return new StructTypeMapping(field, addToBuilder(parquetTypes, Types.buildGroup(OPTIONAL)).named(fieldName), parquetTypes); }
@Override public TypeMapping visit(Union type) { // TODO(PARQUET-756): add Union OriginalType List<TypeMapping> parquetTypes = fromArrow(children); return new UnionTypeMapping(field, addToBuilder(parquetTypes, Types.buildGroup(OPTIONAL)).named(fieldName), parquetTypes); }
public GroupType struct(StructType struct, Type.Repetition repetition, int id, String name) { Types.GroupBuilder<GroupType> builder = Types.buildGroup(repetition); for (NestedField field : struct.fields()) { builder.addField(field(field)); } return builder.id(id).named(name); }
private static GroupType convertListType(final String name, final ArrayType arrayType) { final InternalType subType = arrayType.getElementInternalType(); return Types .buildGroup(Type.Repetition.OPTIONAL).as(OriginalType.LIST) .addField(convertType("array", subType)) .named(name); }
@Override protected Type build(String name) { Preconditions.checkState(logicalTypeAnnotation == null, "LIST is already the logical type and can't be changed"); Preconditions.checkNotNull(elementType, "List element type"); GroupBuilder<GroupType> builder = buildGroup(repetition).as(OriginalType.LIST); if (id != null) { builder.id(id.intValue()); } return builder .repeatedGroup().addFields(elementType).named("list") .named(name); }
@Override protected Type build(String name) { Preconditions.checkState(originalType == null, "LIST is already the logical type and can't be changed"); Preconditions.checkNotNull(elementType, "List element type"); GroupBuilder<GroupType> builder = buildGroup(repetition).as(OriginalType.LIST); if (id != null) { builder.id(id.intValue()); } return builder .repeatedGroup().addFields(elementType).named("list") .named(name); }
@Override protected Type build(String name) { Preconditions.checkState(originalType == null, "MAP is already a logical type and can't be changed."); if (keyType == null) { keyType = STRING_KEY; } GroupBuilder<GroupType> builder = buildGroup(repetition).as(OriginalType.MAP); if (id != null) { builder.id(id.intValue()); } if (valueType != null) { return builder .repeatedGroup().addFields(keyType, valueType).named("map") .named(name); } else { return builder .repeatedGroup().addFields(keyType).named("map") .named(name); } } }
@Override protected Type build(String name) { Preconditions.checkState(logicalTypeAnnotation == null, "MAP is already a logical type and can't be changed."); if (keyType == null) { keyType = STRING_KEY; } GroupBuilder<GroupType> builder = buildGroup(repetition).as(OriginalType.MAP); if (id != null) { builder.id(id.intValue()); } if (valueType != null) { return builder .repeatedGroup().addFields(keyType, valueType).named("map") .named(name); } else { return builder .repeatedGroup().addFields(keyType).named("map") .named(name); } } }