class_docstr: Custom partitioner DoFn for MutualInformation.
code: def setup(self):
      if self._column_partitions > 1:
          self._partitioner = feature_partition_util.ColumnHasher(
              self._column_partitions
          )
      else:
          self._partitioner = None
  
imports: import collections
  from typing import Any, Dict, Iterable, List, Optional, Set, Tuple
  from absl import logging
  import apache_beam
  import numpy
  import pandas
  import pyarrow
  from tensorflow_data_validation import types
  from tensorflow_data_validation.statistics.generators import partitioned_stats_generator
  from tensorflow_data_validation.utils import feature_partition_util
  from tensorflow_data_validation.utils import mutual_information_util
  from tensorflow_data_validation.utils import schema_util
  from tensorflow_data_validation.utils import stats_util
  from tfx_bsl.arrow import array_util
  from tensorflow_metadata.proto.v0 import schema_pb2
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 2 for calling the _PartitionFn obj's underlying member method code with example usage: obj.setup() without return types