docstr: Update the histogram with the data.
  Args:
      data: table with the following schema:
  Returns:
      ShuffledHistogram, the shuffled histogram
docstr_tok: ["Update","the","histogram","with","the","data",".","Args",":","data",":","table","with","the","following","schema",":","Returns",":","ShuffledHistogram",",","the","shuffled","histogram"]
code: def statistic(self, data) -> "DistributedHistogram":
      """
      Update the histogram with the data.
      Args:
          data: table with the following schema:
      Returns:
          ShuffledHistogram, the shuffled histogram
      """
      if self._k is None:
          self._k = data.num_partitions**2
      mapper = get_partition_hist_build_mapper(
          self._num_node,
          self._feature_bin_sizes,
          self._value_schemas,
          self._global_seed,
          self._k,
          self._node_mapping,
          self._enable_cumsum,
      )
      table = data.mapReducePartitions(mapper, lambda x, y: x.iadd(y))
      data = DistributedHistogram(
          table,
          self._k,
          self._num_node,
          self._node_data_size,
          global_seed=self._global_seed,
          seed=self._seed,
      )
      return data
  
imports: from ._histogram_distributed import DistributedHistogram
  from ._histogram_local import Histogram
label_desc: Use image node_id 3 for calling the HistogramBuilder obj's underlying member method code with example usage: obj.statistic(data) and returns: data