/** * load bloom filter of {@code colName} from {@code shardPath} */ public static List<CarbonBloomFilter> loadBloomIndex( String shardPath, String colName) { DataInputStream dataInStream = null; List<CarbonBloomFilter> bloomFilters = new ArrayList<>(); try { String indexFile = getBloomIndexFile(shardPath, colName); dataInStream = FileFactory.getDataInputStream(indexFile, FileFactory.getFileType(indexFile)); while (dataInStream.available() > 0) { CarbonBloomFilter bloomFilter = new CarbonBloomFilter(); bloomFilter.readFields(dataInStream); bloomFilter.setShardName(new Path(shardPath).getName()); bloomFilters.add(bloomFilter); } LOGGER.info(String.format("Read %d bloom indices from %s", bloomFilters.size(), indexFile)); return bloomFilters; } catch (IOException e) { LOGGER.error("Error occurs while reading bloom index", e); throw new RuntimeException("Error occurs while reading bloom index", e); } finally { CarbonUtil.closeStreams(dataInStream); } }
CarbonBloomFilter bloomFilter = new CarbonBloomFilter(); bloomFilter.readFields(indexDataInStream); bloomFilter.setShardName(shardName); bloomFilters.add(bloomFilter);