public static TypeInfo[] typeInfosFromTypeNames(String[] typeNames) throws HiveException { ArrayList<TypeInfo> typeInfoList = TypeInfoUtils.typeInfosFromTypeNames(Arrays.asList(typeNames)); return typeInfoList.toArray(new TypeInfo[0]); }
public static TypeInfo[] typeInfosFromTypeNames(String[] typeNames) throws HiveException { ArrayList<TypeInfo> typeInfoList = TypeInfoUtils.typeInfosFromTypeNames(Arrays.asList(typeNames)); return typeInfoList.toArray(new TypeInfo[0]); }
private static String[] getReadColumnTypes(final List<String> readColumnNames, final List<String> allColumnNames, final List<String> allColumnTypes) { if (readColumnNames == null || allColumnNames == null || allColumnTypes == null || readColumnNames.isEmpty() || allColumnNames.isEmpty() || allColumnTypes.isEmpty()) { return null; } Map<String, String> columnNameToType = new HashMap<>(); List<TypeInfo> types = TypeInfoUtils.typeInfosFromTypeNames(allColumnTypes); if (allColumnNames.size() != types.size()) { LOG.warn("Column names count does not match column types count." + " ColumnNames: {} [{}] ColumnTypes: {} [{}]", allColumnNames, allColumnNames.size(), allColumnTypes, types.size()); return null; } for (int i = 0; i < allColumnNames.size(); i++) { columnNameToType.put(allColumnNames.get(i), types.get(i).toString()); } String[] result = new String[readColumnNames.size()]; for (int i = 0; i < readColumnNames.size(); i++) { result[i] = columnNameToType.get(readColumnNames.get(i)); } return result; }
public void init(List<String> typeNames) throws HiveException { TypeInfo[] typeInfos = TypeInfoUtils.typeInfosFromTypeNames(typeNames).toArray(new TypeInfo[typeNames.size()]); final int count = typeInfos.length; root = new Field(); root.isPrimitive = false; root.category = Category.STRUCT; root.children = createFields(typeInfos); root.count = count; root.objectInspector = null; for (int i = 0; i < count; i++) { root.children[i].outputColumnNum = i; } vectorExtractRow.init(typeInfos); }
public void init(List<String> typeNames, int[] columnMap) throws HiveException { TypeInfo[] typeInfos = TypeInfoUtils.typeInfosFromTypeNames(typeNames).toArray(new TypeInfo[typeNames.size()]); final int count = typeInfos.length; root = new Field(); root.isPrimitive = false; root.category = Category.STRUCT; root.children = createFields(typeInfos); root.count = count; root.objectInspector = null; int[] outputColumnNums = new int[count]; for (int i = 0; i < count; i++) { final int outputColumnNum = columnMap[i]; outputColumnNums[i] = outputColumnNum; root.children[i].outputColumnNum = outputColumnNum; } vectorExtractRow.init(typeInfos, outputColumnNums); }