zoukankan      html  css  js  c++  java
  • Spark ElementwiseProduct 乘积转换

    1、概念

    ElementwiseProduct使用逐元素乘法将每个输入向量乘以提供的“权重”向量。换句话说,它通过标量乘法器缩放数据集的每一列。这表示输入向量v和变换向量w之间的Hadamard乘积,以产生结果向量。

    2、code

    package com.home.spark.ml
    
    import org.apache.spark.SparkConf
    import org.apache.spark.ml.feature.ElementwiseProduct
    import org.apache.spark.ml.linalg.Vectors
    import org.apache.spark.sql.SparkSession
    
    /**
      * ElementwiseProduct使用逐元素乘法将每个输入向量乘以提供的“权重”向量。
      * 换句话说,它通过标量乘法器缩放数据集的每一列。这表示输入向量v和变换向量w之间的Hadamard乘积,以产生结果向量。
      **/
    object Ex_ElementwiseProduct {
      def main(args: Array[String]): Unit = {
        val conf: SparkConf = new SparkConf(true).setMaster("local[2]").setAppName("spark ml")
        val spark = SparkSession.builder().config(conf).getOrCreate()
    
        // Create some vector data; also works for sparse vectors
        val dataFrame = spark.createDataFrame(Seq(
          ("a", Vectors.dense(1.0, 2.0, 3.0)),
          ("b", Vectors.dense(4.0, 5.0, 6.0)))).toDF("id", "vector")
    
        val transformingVector = Vectors.dense(0.0, 1.0, 2.0)
        val transformer = new ElementwiseProduct()
          .setScalingVec(transformingVector)
          .setInputCol("vector")
          .setOutputCol("transformedVector")
    
        // Batch transform the vectors to create new column:
        transformer.transform(dataFrame).show()
    
    
        spark.stop()
      }
    
    }
    +---+-------------+-----------------+
    | id|       vector|transformedVector|
    +---+-------------+-----------------+
    |  a|[1.0,2.0,3.0]|    [0.0,2.0,6.0]|
    |  b|[4.0,5.0,6.0]|   [0.0,5.0,12.0]|
    +---+-------------+-----------------+
  • 相关阅读:
    【Node】fs
    ☀【滚动条】动画,固定
    洛谷——P3817 小A的糖果
    洛谷——P1316 丢瓶盖
    洛谷—— P1190 接水问题
    CODEVS——T1332 上白泽慧音 || 洛谷——P1726 上白泽慧音
    CODEVS——T3008 加工生产调度
    python(20)- 列表生成式和生成器表达式练习Ⅱ
    MTK Android 编译命令
    第六届深圳国际物联网和智慧中国博览会(2014)总结
  • 原文地址:https://www.cnblogs.com/asker009/p/12206399.html
Copyright © 2011-2022 走看看