@Override public String[] getLocations() { Set<String> locations = new HashSet<String>(); for (CarbonInputSplit splitInfo : carbonBlockInfoList) { try { locations.addAll(Arrays.asList(splitInfo.getLocations())); } catch (IOException e) { throw new RuntimeException("Fail to get location of split: " + splitInfo, e); } } locations.toArray(new String[locations.size()]); List<String> nodes = CarbonInputSplitTaskInfo.maxNoNodes(carbonBlockInfoList); return nodes.toArray(new String[nodes.size()]); }
for (String node : split.getLocations()) { Integer nodeOccurence = nodeAndOccurenceMapping.get(node); if (null == nodeOccurence) {
public static List<TableBlockInfo> createBlocks(List<CarbonInputSplit> splitList) { List<TableBlockInfo> tableBlockInfoList = new ArrayList<>(); for (CarbonInputSplit split : splitList) { BlockletInfos blockletInfos = new BlockletInfos(split.getNumberOfBlocklets(), 0, split.getNumberOfBlocklets()); try { TableBlockInfo blockInfo = new TableBlockInfo(split.getPath().toString(), split.blockletId, split.getStart(), split.getSegment().toString(), split.getLocations(), split.getLength(), blockletInfos, split.getVersion(), split.getDeleteDeltaFiles()); blockInfo.setDetailInfo(split.getDetailInfo()); blockInfo.setDataMapWriterPath(split.dataMapWritePath); blockInfo.setBlockOffset(split.getDetailInfo().getBlockFooterOffset()); tableBlockInfoList.add(blockInfo); } catch (IOException e) { throw new RuntimeException("fail to get location of split: " + split, e); } } return tableBlockInfoList; }
public static TableBlockInfo getTableBlockInfo(CarbonInputSplit inputSplit) { BlockletInfos blockletInfos = new BlockletInfos(inputSplit.getNumberOfBlocklets(), 0, inputSplit.getNumberOfBlocklets()); try { TableBlockInfo blockInfo = new TableBlockInfo(inputSplit.getPath().toString(), inputSplit.blockletId, inputSplit.getStart(), inputSplit.getSegment().toString(), inputSplit.getLocations(), inputSplit.getLength(), blockletInfos, inputSplit.getVersion(), inputSplit.getDeleteDeltaFiles()); blockInfo.setDetailInfo(inputSplit.getDetailInfo()); blockInfo.setBlockOffset(inputSplit.getDetailInfo().getBlockFooterOffset()); return blockInfo; } catch (IOException e) { throw new RuntimeException("fail to get location of split: " + inputSplit, e); } }