code: def transform_recursive(
      self, dataset, recursive_pipeline, params=None
  ):
      if params is None:
          params = dict()
      if isinstance(params, dict):
          if params:
              return self.copy(params)._transform_recursive(
                  dataset, recursive_pipeline
              )
          else:
              return self._transform_recursive(
                  dataset, recursive_pipeline
              )
      else:
          raise ValueError(
              "Params must be a param map but got %s." % type(params)
          )
  
file_path: spark-nlp/python/sparknlp/internal/recursive.py
imports: from abc import ABC
  from pyspark.ml.wrapper import JavaEstimator, JavaModel
  from pyspark.sql import DataFrame
label_desc: Use image node_id 2 for calling the RecursiveTransformer obj's underlying member method code with example usage: obj.transform_recursive(dataset, recursive_pipeline, params) and returns: self, self