Spark mllib教程
作者: 时海
统计摘要信息

通过Statistics.colStats 方法 对 RDD[Vector]的每一列进行汇总统计。该方法返回一个MultivariateStatisticalSummary对象,包含最大值、最小值、平均值、方差等统计信息。

 def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder()
      .appName("StatisticsTest")
      .master("local[4]")
      .getOrCreate()


    val sc = spark.sparkContext

    import org.apache.spark.mllib.linalg.Vectors
    import org.apache.spark.mllib.stat.{MultivariateStatisticalSummary, Statistics}

    val observations = sc.parallelize(
      Seq(
        Vectors.dense(1.0, 10.0, 100.0),
        Vectors.dense(2.0, 20.0, 200.0),
        Vectors.dense(3.0, 30.0, 300.0),
        Vectors.dense(0.0, 0.0, 0.0),
        Vectors.dense(4.0, 40.0, 400.0)
      )
    )

    // 计算列的统计摘要信息.
    val summary: MultivariateStatisticalSummary = Statistics.colStats(observations)
    println(summary.mean) // 每一列的均值
    println(summary.variance) // 每一列的方差
    println(summary.numNonzeros) // 每一列的非0个数


    //输出
    //     [2.0,20.0,200.0]  //均值,第一列均值为2.0,第二列均值为20.0,第三列均值为200.0
    //    [2.5,250.0,25000.0]  //方差
    //    [4.0,4.0,4.0]  //非零个数



    spark.stop()
  }




                                    
标签: vectors、dense、均值、summary、multivariatestatisticalsummary
一个创业中的苦逼程序员
  • 回复
隐藏