Scala 火花正火柱

Scala 火花正火柱,scala,apache-spark,spark-dataframe,apache-spark-ml,normalize,Scala,Apache Spark,Spark Dataframe,Apache Spark Ml,Normalize,我有一个包含三列的数据文件,我想将最后一列规范化,以便使用ML(Spark和Scala)应用ALS,我该怎么做 以下是我的数据框架的摘录: val view_df = spark.createDataFrame(view_RDD, viewSchema) val viewdd = view_df.withColumn("userIdTemp", view_df("userId").cast(IntegerType)).drop("userId") .wit

我有一个包含三列的数据文件,我想将最后一列规范化,以便使用ML(Spark和Scala)应用ALS,我该怎么做

以下是我的
数据框架
的摘录:

val view_df = spark.createDataFrame(view_RDD, viewSchema)
val viewdd = view_df.withColumn("userIdTemp", view_df("userId").cast(IntegerType)).drop("userId")
                    .withColumnRenamed("userIdTemp", "userId")
                    .withColumn("productIdTemp", view_df("productId").cast(IntegerType)).drop("productId")
                    .withColumnRenamed("productIdTemp", "productId")
                    .withColumn("viewTemp", view_df("view").cast(FloatType)).drop("view")
                    .withColumnRenamed("viewTemp", "view")`
当需要进行任何缩放/规范化时,通常需要使用。但是,在这种情况下,只有一列需要缩放,它不是
向量
类型(而是
浮点
)。由于
标准缩放器
仅对
向量
起作用,因此可以先应用a,但缩放后需要将
向量
重新转换为
浮点

在这种情况下,更简单的方法是自己做。首先获得柱的平均值和标准偏差,然后进行缩放。可以在
视图
列中执行此操作,如下所示:

val (mean_view, std_view) = viewdd.select(mean("view"), stddev("view"))
  .as[(Double, Double)]
  .first()
viewdd.withColumn("view_scaled", ($"view" - mean_view) / std_view)

如何在Python中实现同样的功能?(特别是$“视图”部分)@Simon30:您可以查看: