continue; if (filter != null && !filter.match(key)) { continue;
continue; if (filter != null && !filter.match(key)) { continue;
@Override public void initialize(MapReduceTaskContext<byte[], Put> context) throws Exception { InputContext inputContext = context.getInputContext(); Preconditions.checkArgument(PARTITIONED.equals(inputContext.getInputName())); Preconditions.checkArgument(inputContext instanceof PartitionedFileSetInputContext); this.pfsInputcontext = (PartitionedFileSetInputContext) inputContext; Preconditions.checkNotNull(pfsInputcontext.getInputPartitionKey()); Preconditions.checkArgument( pfsInputcontext.getInputPartitionKeys().contains(pfsInputcontext.getInputPartitionKey()) ); Map<String, String> dsArguments = RuntimeArguments.extractScope(Scope.DATASET, PARTITIONED, context.getRuntimeArguments()); PartitionFilter inputPartitionFilter = PartitionedFileSetArguments.getInputPartitionFilter(dsArguments); Preconditions.checkNotNull(inputPartitionFilter); // verify that the partition matches the partition filter for this MapReduce Preconditions.checkArgument(inputPartitionFilter.match(pfsInputcontext.getInputPartitionKey())); }
@Test(expected = IllegalArgumentException.class) public void testIncompatibleMatch() { PartitionFilter filter = PartitionFilter.builder() .addValueCondition("year", 2012) .addRangeCondition("month", 4, 7) .addValueCondition("market", "asia") .build(); // field of incompatible type filter.match(PartitionKey .builder() .addField("month", "january") .addField("market", "latin") .addField("year", 2012) .build()); }
Assert.assertTrue(filter.match(PartitionKey .builder() .addField("month", 4) Assert.assertFalse(filter.match(PartitionKey .builder() .addField("month", 7) Assert.assertFalse(filter.match(PartitionKey .builder() .addField("month", 4) Assert.assertTrue(filter.match(PartitionKey .builder() .addField("day", "tue")