val data = https://www.it610.com/article/Array(
Vectors.dense(4.0, 2.0, 3.0),
Vectors.dense(5.0, 6.0, 1.0),
Vectors.dense(2.0, 4.0, 7.0),
Vectors.dense(3.0, 6.0, 5.0)
)
rdd是可以直接算协方差的
rddData=https://www.it610.com/article/sc.parallelize(data)
// RDD转换成RowMatrix
val mat: RowMatrix = new RowMatrix(rddData)
// 统计
val stasticSummary: MultivariateStatisticalSummary =mat.computeColumnSummaryStatistics()
// 均值
println(stasticSummary.mean)
// 结果:3.5,4.5,4.0
// 方差
println(stasticSummary.variance)
// 结果:1.6666666666666667,3.6666666666666665,6.666666666666667
【spark 协方差计算】
// 协方差
val covariance: Matrix = mat.computeCovariance()
println(covariance)
// 结果:
//cov(dim1,dim1) cov(dim1,dim2) cov(dim1,dim3)
//cov(dim2,dim1) cov(dim2,dim2) cov(dim2,dim3)
//cov(dim3,dim1) cov(dim3,dim2) cov(dim3,dim3)
//1.66666666666666790.3333333333333357-3.3333333333333304
//0.33333333333333573.666666666666668-0.6666666666666679
//-3.3333333333333304-0.66666666666666796.666666666666668
// 结果分析:以cov(dim1,dim2)为例
//dim1均值:3.5dim2均值:4.5
//val cov(dim2,dim3)=((4.0-3.5)*(2.0-4.5)+(5.0-3.5)*(6.0-4.5)+(2.0-3.5)*(4.0-4.5)+(3.0-3.5)*(6.0-4.5))/(4-1)
//cov(dim2,dim3)=0.3333333333333333
---------------------
作者:wangpei1949
原文:https://blog.csdn.net/wangpei1949/article/details/53190922
版权声明:本文为博主原创文章,转载请附上博文链接!
推荐阅读
- spark|spark UDAF根据某列去重求合 distinct sum
- 大数据|spark UDAF 自定义聚合函数 UserDefinedAggregateFunction 带条件的去重操作
- Spark 写入 MySQL 乱码问题
- SCD|一种基于SparkSQL的Hive数据仓库拉链表缓慢变化维(SCD2+SCD1)的示例实现
- spark算子--action篇
- 大数据|Spark调优解决方案(一)之提交任务时合理分配资源
- spark|spark2.1 新特性
- Spark Aggregate算子