Мне нужно найти скользящее среднее значение временного ряда, разделенное полем «ReportId».Я использую метод ниже, чтобы найти скользящее среднее, но я сталкиваюсь с проблемами со значениями выбросов (аномалий), которые влияют на среднее значение.Поэтому я хочу исключить верхние 10% и нижние 10% значения из расчета среднего.
var movingAvgDS = ds.withColumn("MovingAverage", avg(col("ConsumedWatt")).over( Window.partitionBy("ReportId").rowsBetween(-50,50)) )