Scala 火花正火柱
我有一个包含三列的数据文件,我想将最后一列规范化,以便使用ML(Spark和Scala)应用ALS,我该怎么做 以下是我的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
数据框架
的摘录:
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:您可以查看: