layout: section title: “Filter” permalink: /documentation/transforms/java/elementwise/filter/ section_menu: section-menu/documentation.html

Filter

Examples

Example 1: Filtering with a predicate

PCollection<String> allStrings = Create.of("Hello", "world", "hi");
PCollection<String> longStrings = allStrings
    .apply(Filter.by(new SerializableFunction<String, Boolean>() {
      @Override
      public Boolean apply(String input) {
        return input.length() > 3;
      }
    }));

The result is a PCollection containing “Hello” and “world”.

Example 2: Filtering with an inequality

PCollection<Long> numbers = Create.of(1L, 2L, 3L, 4L, 5L);
PCollection<Long> bigNumbers = numbers.apply(Filter.greaterThan(3));
PCollection<Long> smallNumbers = numbers.apply(Filter.lessThanEq(3));

Other variants include Filter.greaterThanEq, Filter.lessThan and Filter.equal.

Related transforms

  • [FlatMapElements]({{ site.baseurl }}/documentation/transforms/java/elementwise/flatmapelements) behaves the same as Map, but for each input it might produce zero or more outputs.
  • [ParDo]({{ site.baseurl }}/documentation/transforms/java/elementwise/pardo) is the most general element-wise mapping operation, and includes other abilities such as multiple output collections and side-inputs.