code: def _fit_on_parquet(self, dataset_idx=None):
      backend = self._get_or_create_backend()
      store = self.getStore()
      label_columns = self.getLabelCols()
      feature_columns = self.getFeatureCols()
      sample_weight_col = self.getSampleWeightCol()
  
      (
          train_rows,
          val_rows,
          metadata,
          avg_row_size,
      ) = util.get_simple_meta_from_parquet(
          store,
          label_columns=label_columns,
          feature_columns=feature_columns,
          sample_weight_col=sample_weight_col,
          dataset_idx=dataset_idx,
      )
  
      return self._fit_on_prepared_data(
          backend,
          train_rows,
          val_rows,
          metadata,
          avg_row_size,
          dataset_idx,
      )
  
file_path: horovod/horovod/spark/common/estimator.py
imports: import horovod.spark.common._namedtuple_fix
  from pyspark.ml import Estimator, Model
  from horovod.spark.common import util
  from horovod.spark.common.backend import SparkBackend
  from horovod.spark.common.params import EstimatorParams, ModelParams
label_desc: Use image node_id 3 for calling the HorovodEstimator obj's underlying member method code with example usage: obj._fit_on_parquet(dataset_idx) and returns: self