private static List<OrcType> createOrcArrayType(int nextFieldTypeIndex, Type itemType) { nextFieldTypeIndex++; List<OrcType> itemTypes = toOrcType(nextFieldTypeIndex, itemType); List<OrcType> orcTypes = new ArrayList<>(); orcTypes.add(new OrcType(OrcTypeKind.LIST, ImmutableList.of(nextFieldTypeIndex), ImmutableList.of("item"))); orcTypes.addAll(itemTypes); return orcTypes; }
private static List<OrcType> createOrcMapType(int nextFieldTypeIndex, Type keyType, Type valueType) { nextFieldTypeIndex++; List<OrcType> keyTypes = toOrcType(nextFieldTypeIndex, keyType); List<OrcType> valueTypes = toOrcType(nextFieldTypeIndex + keyTypes.size(), valueType); List<OrcType> orcTypes = new ArrayList<>(); orcTypes.add(new OrcType(OrcTypeKind.MAP, ImmutableList.of(nextFieldTypeIndex, nextFieldTypeIndex + keyTypes.size()), ImmutableList.of("key", "value"))); orcTypes.addAll(keyTypes); orcTypes.addAll(valueTypes); return orcTypes; }
public static List<OrcType> createOrcRowType(int nextFieldTypeIndex, List<String> fieldNames, List<Type> fieldTypes) { nextFieldTypeIndex++; List<Integer> fieldTypeIndexes = new ArrayList<>(); List<List<OrcType>> fieldTypesList = new ArrayList<>(); for (Type fieldType : fieldTypes) { fieldTypeIndexes.add(nextFieldTypeIndex); List<OrcType> fieldOrcTypes = toOrcType(nextFieldTypeIndex, fieldType); fieldTypesList.add(fieldOrcTypes); nextFieldTypeIndex += fieldOrcTypes.size(); } List<OrcType> orcTypes = new ArrayList<>(); orcTypes.add(new OrcType( OrcTypeKind.STRUCT, fieldTypeIndexes, fieldNames)); fieldTypesList.forEach(orcTypes::addAll); return orcTypes; } }
private static OrcType toType(DwrfProto.Type type) { return new OrcType(toTypeKind(type.getKind()), type.getSubtypesList(), type.getFieldNamesList(), Optional.empty(), Optional.empty(), Optional.empty()); }
private static OrcType toType(OrcProto.Type type) { Optional<Integer> length = Optional.empty(); if (type.getKind() == OrcProto.Type.Kind.VARCHAR || type.getKind() == OrcProto.Type.Kind.CHAR) { length = Optional.of(type.getMaximumLength()); } Optional<Integer> precision = Optional.empty(); Optional<Integer> scale = Optional.empty(); if (type.getKind() == OrcProto.Type.Kind.DECIMAL) { precision = Optional.of(type.getPrecision()); scale = Optional.of(type.getScale()); } return new OrcType(toTypeKind(type.getKind()), type.getSubtypesList(), type.getFieldNamesList(), length, precision, scale); }
private static List<OrcType> toOrcType(int nextFieldTypeIndex, Type type) return ImmutableList.of(new OrcType(OrcTypeKind.BOOLEAN)); return ImmutableList.of(new OrcType(OrcTypeKind.BYTE)); return ImmutableList.of(new OrcType(OrcTypeKind.SHORT)); return ImmutableList.of(new OrcType(OrcTypeKind.INT)); return ImmutableList.of(new OrcType(OrcTypeKind.LONG)); return ImmutableList.of(new OrcType(OrcTypeKind.DOUBLE)); return ImmutableList.of(new OrcType(OrcTypeKind.FLOAT)); return ImmutableList.of(new OrcType(OrcTypeKind.STRING)); return ImmutableList.of(new OrcType(OrcTypeKind.VARCHAR, varcharType.getLengthSafe())); return ImmutableList.of(new OrcType(OrcTypeKind.CHAR, ((CharType) type).getLength())); return ImmutableList.of(new OrcType(OrcTypeKind.BINARY)); return ImmutableList.of(new OrcType(OrcTypeKind.DATE)); return ImmutableList.of(new OrcType(OrcTypeKind.TIMESTAMP)); return ImmutableList.of(new OrcType(OrcTypeKind.DECIMAL, decimalType.getPrecision(), decimalType.getScale()));
private static List<OrcType> createOrcArrayType(int nextFieldTypeIndex, Type itemType) { nextFieldTypeIndex++; List<OrcType> itemTypes = toOrcType(nextFieldTypeIndex, itemType); List<OrcType> orcTypes = new ArrayList<>(); orcTypes.add(new OrcType(OrcTypeKind.LIST, ImmutableList.of(nextFieldTypeIndex), ImmutableList.of("item"))); orcTypes.addAll(itemTypes); return orcTypes; }
private static List<OrcType> createOrcMapType(int nextFieldTypeIndex, Type keyType, Type valueType) { nextFieldTypeIndex++; List<OrcType> keyTypes = toOrcType(nextFieldTypeIndex, keyType); List<OrcType> valueTypes = toOrcType(nextFieldTypeIndex + keyTypes.size(), valueType); List<OrcType> orcTypes = new ArrayList<>(); orcTypes.add(new OrcType(OrcTypeKind.MAP, ImmutableList.of(nextFieldTypeIndex, nextFieldTypeIndex + keyTypes.size()), ImmutableList.of("key", "value"))); orcTypes.addAll(keyTypes); orcTypes.addAll(valueTypes); return orcTypes; }
public static List<OrcType> createOrcRowType(int nextFieldTypeIndex, List<String> fieldNames, List<Type> fieldTypes) { nextFieldTypeIndex++; List<Integer> fieldTypeIndexes = new ArrayList<>(); List<List<OrcType>> fieldTypesList = new ArrayList<>(); for (Type fieldType : fieldTypes) { fieldTypeIndexes.add(nextFieldTypeIndex); List<OrcType> fieldOrcTypes = toOrcType(nextFieldTypeIndex, fieldType); fieldTypesList.add(fieldOrcTypes); nextFieldTypeIndex += fieldOrcTypes.size(); } List<OrcType> orcTypes = new ArrayList<>(); orcTypes.add(new OrcType( OrcTypeKind.STRUCT, fieldTypeIndexes, fieldNames)); fieldTypesList.forEach(orcTypes::addAll); return orcTypes; } }
private static OrcType toType(DwrfProto.Type type) { return new OrcType(toTypeKind(type.getKind()), type.getSubtypesList(), type.getFieldNamesList(), Optional.empty(), Optional.empty(), Optional.empty()); }
private static OrcType toType(OrcProto.Type type) { Optional<Integer> length = Optional.empty(); if (type.getKind() == OrcProto.Type.Kind.VARCHAR || type.getKind() == OrcProto.Type.Kind.CHAR) { length = Optional.of(type.getMaximumLength()); } Optional<Integer> precision = Optional.empty(); Optional<Integer> scale = Optional.empty(); if (type.getKind() == OrcProto.Type.Kind.DECIMAL) { precision = Optional.of(type.getPrecision()); scale = Optional.of(type.getScale()); } return new OrcType(toTypeKind(type.getKind()), type.getSubtypesList(), type.getFieldNamesList(), length, precision, scale); }
private static List<OrcType> toOrcType(int nextFieldTypeIndex, Type type) return ImmutableList.of(new OrcType(OrcTypeKind.BOOLEAN)); return ImmutableList.of(new OrcType(OrcTypeKind.BYTE)); return ImmutableList.of(new OrcType(OrcTypeKind.SHORT)); return ImmutableList.of(new OrcType(OrcTypeKind.INT)); return ImmutableList.of(new OrcType(OrcTypeKind.LONG)); return ImmutableList.of(new OrcType(OrcTypeKind.DOUBLE)); return ImmutableList.of(new OrcType(OrcTypeKind.FLOAT)); return ImmutableList.of(new OrcType(OrcTypeKind.STRING)); return ImmutableList.of(new OrcType(OrcTypeKind.VARCHAR, varcharType.getLengthSafe())); return ImmutableList.of(new OrcType(OrcTypeKind.CHAR, ((CharType) type).getLength())); return ImmutableList.of(new OrcType(OrcTypeKind.BINARY)); return ImmutableList.of(new OrcType(OrcTypeKind.DATE)); return ImmutableList.of(new OrcType(OrcTypeKind.TIMESTAMP)); return ImmutableList.of(new OrcType(OrcTypeKind.DECIMAL, decimalType.getPrecision(), decimalType.getScale()));
private static OrcType toType(OrcProto.Type type) { return new OrcType(toTypeKind(type.getKind()), type.getSubtypesList(), type.getFieldNamesList()); }
private static OrcType toType(OrcProto.Type type) { return new OrcType(toTypeKind(type.getKind()), type.getSubtypesList(), type.getFieldNamesList()); }