code: def filter_by_bloom_filter(
      df1: TileableType,
      df2: TileableType,
      left_on: Union[str, List],
      right_on: Union[str, List],
      max_elements: int = 10000,
      error_rate: float = 0.1,
      combine_size: int = None,
  ):
      """
      Use bloom filter to filter DataFrame.
  
      Parameters
      ----------
      df1: DataFrame.
          DataFrame to be filtered.
      df2: DataFrame.
          Dataframe to build filter.
      left_on: str or list.
          Column(s) selected on df1.
      right_on: str or list.
          Column(s) selected on df2.
      max_elements: int
          How many elements you expect the filter to hold.
      error_rate: float
          error_rate defines accuracy.
      combine_size: int
          Combine size.
  
      Returns
      -------
      DataFrame
          Filtered df1.
      """
      if combine_size is None:
          combine_size = options.combine_size
      op = DataFrameBloomFilter(
          left_on=left_on,
          right_on=right_on,
          max_elements=max_elements,
          error_rate=error_rate,
          combine_size=combine_size,
      )
      return op(df1, df2)
  
imports: from typing import Union, List, Any
  import numpy
  import pandas
  from ...config import options
  from ...core import OutputType
  from ...core.context import Context
  from ...lib.bloom_filter import BloomFilter
  from ...serialization.serializables import AnyField, Int64Field, Float64Field, StringField
  from ...None import opcodes
  from ...typing import TileableType
  from ..operands import DataFrameOperandMixin, DataFrameOperand
  from ..utils import parse_index
label_desc: Use image node_id 1 for calling a global function with example usage: filter_by_bloom_filter(df1, df2, left_on, right_on, max_elements, error_rate, combine_size) and returns: op