Combiner.setColumns(setting, Collections.singletonList(new Column(MetadataSchema.ReplicationSection.COLF))); try {
public IteratorSettingBuilder combinerColumnFamilies(final List<String> columnFamilies) { Combiner.setColumns(setting, Lists.transform(columnFamilies, IteratorSetting.Column::new)); return this; }
public static IteratorSetting iteratorSetting(int priority, List<IteratorSetting.Column> columns) { IteratorSetting itset = new IteratorSetting(priority, DoubleStatsCombiner.class); if (columns == null || columns.isEmpty()) Combiner.setCombineAllColumns(itset, true); else Combiner.setColumns(itset, columns); return itset; }
/** Pass columns as null or empty to combine on all columns. */ public static IteratorSetting combinerSetting(int priority, List<IteratorSetting.Column> columns, int capacity, Class<? extends Combiner> combiner, Map<String,String> combinerOpts) { IteratorSetting itset = new IteratorSetting(priority, CacheIterator.class); if (columns == null || columns.isEmpty()) Combiner.setCombineAllColumns(itset, true); else Combiner.setColumns(itset, columns); itset.addOption(COMBINER, combiner.getName()); Preconditions.checkArgument(capacity > 0, "To use the LruCacheIterator, specify a positive capacity instead of "+capacity); itset.addOption(CAPACITY, Integer.toString(capacity)); if (combinerOpts != null) for (Map.Entry<String, String> entry : combinerOpts.entrySet()) itset.addOption(COMBINER_OPT_PREFIX + entry.getKey(), entry.getValue()); return itset; }
/** Pass columns as null or empty to combine on all columns. */ public static IteratorSetting combinerSetting(int priority, List<IteratorSetting.Column> columns, int capacity, Class<? extends Combiner> combiner, Map<String,String> combinerOpts, boolean useRegularMap) { IteratorSetting itset = new IteratorSetting(priority, LruCacheIterator.class); if (columns == null || columns.isEmpty()) Combiner.setCombineAllColumns(itset, true); else Combiner.setColumns(itset, columns); itset.addOption(COMBINER, combiner.getName()); Preconditions.checkArgument(capacity > 0, "To use the LruCacheIterator, specify a positive capacity instead of "+capacity); itset.addOption(CAPACITY, Integer.toString(capacity)); if (combinerOpts != null) for (Map.Entry<String, String> entry : combinerOpts.entrySet()) itset.addOption(COMBINER_OPT_PREFIX + entry.getKey(), entry.getValue()); if (useRegularMap) itset.addOption(USE_REGULAR_MAP, Boolean.TRUE.toString()); return itset; }
/** For use as a Combiner. Pass columns as null or empty to combine on all columns. */ public static IteratorSetting combinerSetting(int priority, List<IteratorSetting.Column> columns, ScalarOp op, ScalarType type, boolean keepZero) { IteratorSetting itset = new IteratorSetting(priority, MathTwoScalar.class); if (columns == null || columns.isEmpty()) Combiner.setCombineAllColumns(itset, true); else Combiner.setColumns(itset, columns); itset.addOptions(optionMap(op, type, null, keepZero)); // no newVisibility needed for Combiner usage return itset; }
Combiner.setColumns(setting, Collections.singletonList(new Column(MetadataSchema.ReplicationSection.COLF))); try {
for (String column : columnStrArr) combineColumns.add(new IteratorSetting.Column(columnFamily, column)); Combiner.setColumns(itSet, combineColumns);
c.tableOperations().create(tableName); IteratorSetting is = new IteratorSetting(5, "Bad Aggregator", BadCombiner.class); Combiner.setColumns(is, Collections.singletonList(new IteratorSetting.Column("acf"))); c.tableOperations().attachIterator(tableName, is);
@Test public void test() throws Exception { Connector c = getConnector(); String tableName = getUniqueNames(1)[0]; c.tableOperations().create(tableName); BatchWriter bw = c.createBatchWriter(tableName, new BatchWriterConfig()); Mutation m = new Mutation("row1"); m.put("cf", "col1", "Test"); bw.addMutation(m); bw.close(); scanCheck(c, tableName, "Test"); FileSystem fs = getCluster().getFileSystem(); Path jarPath = new Path(rootPath + "/lib/ext/Test.jar"); copyStreamToFileSystem(fs, "/TestCombinerX.jar", jarPath); sleepUninterruptibly(1, TimeUnit.SECONDS); IteratorSetting is = new IteratorSetting(10, "TestCombiner", "org.apache.accumulo.test.functional.TestCombiner"); Combiner.setColumns(is, Collections.singletonList(new IteratorSetting.Column("cf"))); c.tableOperations().attachIterator(tableName, is, EnumSet.of(IteratorScope.scan)); sleepUninterruptibly(ZOOKEEPER_PROPAGATION_TIME, TimeUnit.MILLISECONDS); scanCheck(c, tableName, "TestX"); fs.delete(jarPath, true); copyStreamToFileSystem(fs, "/TestCombinerY.jar", jarPath); sleepUninterruptibly(5, TimeUnit.SECONDS); scanCheck(c, tableName, "TestY"); fs.delete(jarPath, true); }