Без воспроизводимого примера или структуры данных трудно указать c. Таким образом, я могу предложить вам кое-что о RMSE оттуда , но может потребоваться более подробная информация:
import pyspark.sql.functions as psf
def compute_RMSE(expected_col, actual_col, group_col):
rmse = old_df.withColumn("squarederror",
psf.pow(psf.col(actual_col) - psf.col(expected_col),
psf.lit(2)
))
.groupby(group_col)
.agg(psf.avg(psf.col("squarederror")).alias("mse"))
.withColumn("rmse", psf.sqrt(psf.col("mse")))
return(rmse)
И вы могли бы вызвать такую функцию (здесь некоторые подробности могут помочь более конкретно определить) c)
compute_RMSE("expectedcol", "realizedcol","epoch")