class_docstr: A Spark RDD counterpart.
  
  PrivateRDD guarantees that only data that has been aggregated 
  in a DP manner, using no more than the specified privacy 
  budget, can be extracted from it through its API.
  
  PrivateRDD keeps a `privacy_id` for each element
  in order to guarantee correct DP computations.
code: def __init__(self, rdd, budget_accountant, privacy_id_extractor=None):
      if privacy_id_extractor:
          self._rdd = rdd.map(lambda x: (privacy_id_extractor(x), x))
      else:
          # It's assumed that rdd is already in format (privacy_id, value)
          self._rdd = rdd
      self._budget_accountant = budget_accountant
  
file_path: pipelinedp/pipeline_dp/private_spark.py
imports: from pyspark import RDD
  from typing import Callable, Optional
  import pipeline_dp
  from pipeline_dp import aggregate_params, budget_accounting
label_desc: Use image node_id 1 to create a new PrivateRDD object  with example: obj = PrivateRDD(rdd, budget_accountant, privacy_id_extractor)