class_docstr: This is the AccessAnomaly, a pyspark.ml.Estimator which
  creates the AccessAnomalyModel which is a pyspark.ml.Transformer
code: def _get_scaled_df(self, df: DataFrame) -> DataFrame:
      return (
          scalers.LinearScalarScaler(
              input_col=self.likelihood_col,
              partition_key=self.tenant_col,
              output_col=self.scaled_likelihood_col,
              min_required_value=self.low_value,
              max_required_value=self.high_value,
          )
          .fit(df)
          .transform(df)
          if self.low_value is not None and self.high_value is not None
          else df
      )
  
imports: import os
  from typing import List, Optional, Tuple
  from synapse.ml.cyber.anomaly.complement_access import ComplementAccessTransformer
  from synapse.ml.cyber.feature import indexers, scalers
  from synapse.ml.cyber.utils import spark_utils
  import numpy
  from pyspark import SQLContext
  from pyspark.ml import Estimator, Transformer
  from pyspark.ml.param.shared import Param, Params
  from pyspark.ml.recommendation import ALS
  from pyspark.sql import DataFrame, functions, types
label_desc: Use image node_id 7 for calling the AccessAnomaly obj's underlying member method code with example usage: obj._get_scaled_df(df) and returns: unknown