code: def identify_normalization_parameters(
      table_spec: TableSpec,
      column_name: str,
      preprocessing_options: PreprocessingOptions,
      seed: Optional[int] = None,
  ) -> Dict[int, NormalizationParameters]:
      """Get normalization parameters"""
      sqlCtx = get_spark_session()
      df = sqlCtx.sql(f"SELECT * FROM {table_spec.table_name}")
      df = create_normalization_spec_spark(
          df, column_name, preprocessing_options.num_samples, seed
      )
      rows = df.collect()
  
      normalization_processor = normalization_helper(
          max_unique_enum_values=preprocessing_options.max_unique_enum_values,
          quantile_size=preprocessing_options.quantile_size,
          quantile_k2_threshold=preprocessing_options.quantile_k2_threshold,
          skip_box_cox=preprocessing_options.skip_box_cox,
          skip_quantiles=preprocessing_options.skip_quantiles,
          feature_overrides=preprocessing_options.feature_overrides,
          allowedlist_features=preprocessing_options.allowedlist_features,
          assert_allowedlist_feature_coverage=preprocessing_options.assert_allowedlist_feature_coverage,
      )
      return normalization_processor(rows)
  
file_path: ReAgent/reagent/workflow/identify_types_flow.py
imports: from typing import Dict, List, Optional
  import reagent.core.types
  from pyspark.sql.functions import col, collect_list, explode
  from reagent.data.spark_utils import get_spark_session
  from reagent.preprocessing.normalization import get_feature_norm_metadata, NormalizationParameters
  from .types import PreprocessingOptions, TableSpec
label_desc: Use image node_id 2 for calling a global function with example usage: identify_normalization_parameters(table_spec, column_name, preprocessing_options, seed) and returns: normalization_processor