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; }
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; }
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 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; }
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; }
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; } }