code: def test_parallel_fit(self):
      featurized_data = self.get_data()
      estimator1 = (
          VowpalWabbitContextualBandit()
          .setPassThroughArgs("--cb_explore_adf --epsilon 0.2 --quiet")
          .setParallelism(6)
          .setUseBarrierExecutionMode(False)
      )
  
      paramGrid = (
          ParamGridBuilder()
          .addGrid(estimator1.learningRate, [0.5, 0.1, 0.005, 0.14])
          .addGrid(estimator1.l2, [10.0, 20.0])
          .build()
      )
  
      models = estimator1.parallelFit(featurized_data, paramGrid)
      for model in models:
          assert (
              float(
                  model.getPerformanceStatistics().first()[
                      "ipsEstimate"
                  ]
              )
              > 0
          )
  
imports: import os
  import unittest
  import tempfile
  import pyspark
  from synapsemltest.spark import *
  from synapse.ml.vw import VowpalWabbitContextualBandit
  from synapse.ml.vw import VowpalWabbitFeaturizer
  from synapse.ml.vw import VectorZipper
  from pyspark.ml.tuning import ParamGridBuilder
  from pyspark.sql.types import *
  from pyspark.ml import Pipeline
  from pyspark.ml.wrapper import *
  from pyspark.ml.common import inherit_doc, _java2py, _py2java
  from pyspark.sql.utils import AnalysisException
label_desc: Use image node_id 7 for calling the VowpalWabbitSpec obj's underlying member method code with example usage: obj.test_parallel_fit() without return types