/** * Matches all cells from a row with `probability`, and matches no cells from the row with * probability 1-`probability`. */ public Filter sample(double probability) { Preconditions.checkArgument(0 <= probability, "Probability must be positive"); Preconditions.checkArgument(probability <= 1.0, "Probability must be less than 1.0"); return new SimpleFilter(RowFilter.newBuilder().setRowSampleFilter(probability).build()); } }
@Test public void fromProtoTest() { RowFilter inner = RowFilter.newBuilder().setRowSampleFilter(0.5).build(); RowFilter actualFilter = FILTERS.fromProto(inner).toProto(); assertThat(actualFilter).isEqualTo(inner); }
@Test public void keySampleTest() { RowFilter actualFilter = FILTERS.key().sample(0.3).toProto(); RowFilter expectedFilter = RowFilter.newBuilder().setRowSampleFilter(0.3).build(); assertThat(actualFilter).isEqualTo(expectedFilter); }
setRowSampleFilter(other.getRowSampleFilter()); break;
setRowSampleFilter(other.getRowSampleFilter()); break;
/** * Matches all cells from a row with `probability`, and matches no cells from the row with * probability 1-`probability`. */ public Filter sample(double probability) { Preconditions.checkArgument(0 <= probability, "Probability must be positive"); Preconditions.checkArgument(probability <= 1.0, "Probability must be less than 1.0"); return new SimpleFilter(RowFilter.newBuilder().setRowSampleFilter(probability).build()); } }
/** * Matches all cells from a row with `probability`, and matches no cells from the row with * probability 1-`probability`. */ public Filter sample(double probability) { Preconditions.checkArgument(0 <= probability, "Probability must be positive"); Preconditions.checkArgument(probability <= 1.0, "Probability must be less than 1.0"); return new SimpleFilter(RowFilter.newBuilder().setRowSampleFilter(probability).build()); } }
setRowSampleFilter(other.getRowSampleFilter()); break;
@Test public void interleaveTest() { RowFilter actualProto = FILTERS .interleave() .filter(FILTERS.key().regex(".*")) .filter(FILTERS.key().sample(0.5)) .filter( FILTERS.interleave().filter(FILTERS.family().regex("hi$")).filter(FILTERS.pass())) .toProto(); RowFilter expectedFilter = RowFilter.newBuilder() .setInterleave( Interleave.newBuilder() .addFilters( RowFilter.newBuilder().setRowKeyRegexFilter(ByteString.copyFromUtf8(".*"))) .addFilters(RowFilter.newBuilder().setRowSampleFilter(0.5)) .addFilters( RowFilter.newBuilder() .setInterleave( Interleave.newBuilder() .addFilters( RowFilter.newBuilder().setFamilyNameRegexFilter("hi$")) .addFilters( RowFilter.newBuilder().setPassAllFilter(true).build())))) .build(); assertThat(actualProto).isEqualTo(expectedFilter); }
@Test public void chainTest() { RowFilter actualProto = FILTERS .chain() .filter(FILTERS.key().regex(".*")) .filter(FILTERS.key().sample(0.5)) .filter(FILTERS.chain().filter(FILTERS.family().regex("hi$")).filter(FILTERS.pass())) .toProto(); RowFilter expectedFilter = RowFilter.newBuilder() .setChain( Chain.newBuilder() .addFilters( RowFilter.newBuilder().setRowKeyRegexFilter(ByteString.copyFromUtf8(".*"))) .addFilters(RowFilter.newBuilder().setRowSampleFilter(0.5)) .addFilters( RowFilter.newBuilder() .setChain( Chain.newBuilder() .addFilters( RowFilter.newBuilder().setFamilyNameRegexFilter("hi$")) .addFilters(RowFilter.newBuilder().setPassAllFilter(true))))) .build(); assertThat(actualProto).isEqualTo(expectedFilter); }