class_docstr: Utility class to help create wrapper classes from Java/Scala
  implementations of pipeline components.
class_docstr_tok: ["Utility","class","to","help","create","wrapper","classes","from","Java\/Scala","implementations","of","pipeline","components","."]
docstr: Creates a copy of this instance with the same uid and some
  extra params. This implementation first calls Params.copy and
  then make a copy of the companion Java pipeline component with
  extra params. So both the Python wrapper and the Java pipeline
  component get copied.
  
  Parameters
  ----------
  extra : dict, optional
      Extra parameters to copy to the new instance
  
  Returns
  -------
  :py:class:`JavaParams`
      Copy of this instance
docstr_tok: ["Creates","a","copy","of","this","instance","with","the","same","uid","and","some","extra","params",".","This","implementation","first","calls","Params.copy","and","then","make","a","copy","of","the","companion","Java","pipeline","component","with","extra","params",".","So","both","the","Python","wrapper","and","the","Java","pipeline","component","get","copied",".","Parameters","--","--","--","--","--","extra",":","dict",",","optional","Extra","parameters","to","copy","to","the","new","instance","Returns","--","--","--","-",":","py",":","class",":","`","JavaParams","`","Copy","of","this","instance"]
code: def copy(self: "JP", extra: Optional["ParamMap"] = None) -> "JP":
      """
      Creates a copy of this instance with the same uid and some
      extra params. This implementation first calls Params.copy and
      then make a copy of the companion Java pipeline component with
      extra params. So both the Python wrapper and the Java pipeline
      component get copied.
  
      Parameters
      ----------
      extra : dict, optional
          Extra parameters to copy to the new instance
  
      Returns
      -------
      :py:class:`JavaParams`
          Copy of this instance
      """
      if extra is None:
          extra = dict()
      that = super(JavaParams, self).copy(extra)
      if self._java_obj is not None:
          that._java_obj = self._java_obj.copy(
              self._empty_java_param_map()
          )
          that._transfer_params_to_java()
      return that
  
imports: from abc import ABCMeta, abstractmethod
  from typing import Any, Generic, Optional, List, Type, TypeVar, TYPE_CHECKING
  from pyspark import since
  from pyspark import SparkContext
  from pyspark.sql import DataFrame
  from pyspark.ml import Estimator, Predictor, PredictionModel, Transformer, Model
  from pyspark.ml.base import _PredictorParams
  from pyspark.ml.param import Param, Params
  from pyspark.ml.util import _jvm
  from pyspark.ml.common import inherit_doc, _java2py, _py2java
label_desc: Use image node_id 10 for calling the JavaParams obj's underlying member method code with example usage: obj.copy(extra) and returns: that