class_docstr: Performs utility analysis for DP aggregations.
  
  This class reuses the computation graph from the DP computation code by
  subclassing from pipeline_dp.DPEngine and by replacing some nodes of the
  computational graph from DP computation to analysis.
class_docstr_tok: ["Performs","utility","analysis","for","DP","aggregations",".","This","class","reuses","the","computation","graph","from","the","DP","computation","code","by","subclassing","from","pipeline_dp.DPEngine","and","by","replacing","some","nodes","of","the","computational","graph","from","DP","computation","to","analysis","."]
docstr: Extract columns using data_extractors.
docstr_tok: ["Extract","columns","using","data_extractors","."]
code: def _extract_columns(
      self,
      col,
      data_extractors: Union[
          pipeline_dp.DataExtractors, pipeline_dp.PreAggregateExtractors
      ],
  ):
      """Extract columns using data_extractors."""
      if self._options.pre_aggregated_data:
          # The output elements format (privacy_id, partition_key, value).
          # For pre-aggregation privacy_id is not needed. So None is return
          # as a dummy privacy id.
          return self._backend.map(
              col,
              lambda row: (
                  None,
                  data_extractors.partition_extractor(row),
                  data_extractors.preaggregate_extractor(row),
              ),
              "Extract (partition_key, preaggregate_data))",
          )
      return super()._extract_columns(col, data_extractors)
  
imports: import copy
  from typing import Optional, Union
  import pipeline_dp
  from pipeline_dp import budget_accounting
  from pipeline_dp import combiners
  from pipeline_dp import contribution_bounders
  from pipeline_dp import pipeline_backend
  import analysis
  import analysis.contribution_bounders
  from analysis import per_partition_combiners
  from analysis import data_structures
label_desc: Use image node_id 7 for calling the UtilityAnalysisEngine obj's underlying member method code with example usage: obj._extract_columns(col, data_extractors) and returns: super, self