code: def testSimpleOnDataFrame():
      spark = test_helpers.getOrCreateSparkSession(
          test_helpers.getCurrentMethodName()
      )
      import catboost_spark
  
      featureNames = ["f1", "f2", "f3"]
  
      srcDataSchema = pool_test_helpers.createSchema(
          [("features", VectorUDT()), ("label", DoubleType())],
          featureNames,
          addFeatureNamesMetadata=True,
      )
  
      srcData = [
          Row(Vectors.dense(0.1, 0.2, 0.11), 0.12),
          Row(Vectors.dense(0.97, 0.82, 0.33), 1.1),
          Row(Vectors.dense(0.13, 0.22, 0.23), 2.1),
          Row(Vectors.dense(0.14, 0.18, 0.1), 0.0),
          Row(Vectors.dense(0.9, 0.67, 0.17), -1.0),
          Row(Vectors.dense(0.66, 0.1, 0.31), 0.62),
      ]
  
      df = spark.createDataFrame(
          spark.sparkContext.parallelize(srcData),
          StructType(srcDataSchema),
      )
  
      regressor = (
          catboost_spark.CatBoostRegressor()
          .setIterations(20)
          .setTrainDir(
              tempfile.mkdtemp(
                  prefix=test_helpers.getCurrentMethodName()
              )
          )
      )
      model = regressor.fit(df)
      predictions = model.transform(df)
  
      print("predictions")
      predictions.show(truncate=False)
  
imports: import collections
  import datetime
  import os
  import shutil
  import tempfile
  import test_helpers
  import pool_test_helpers
  from pyspark.ml import Pipeline, PipelineModel
  from pyspark.ml.feature import StringIndexer, VectorAssembler
  from pyspark.ml.linalg import Vectors, VectorUDT
  from pyspark.sql import Row
  from pyspark.sql.types import *
label_desc: Use image node_id 2 for calling a global function with example usage: testSimpleOnDataFrame() without return types