Spark sql实现Spearman系数和pearson系数计算

背景

目前广泛向通过算法模型来实现

spark能力

Spearman系数、pearson系数计算方法测试

Spark提供了常用机器学习算法的实现, 封装在spark.ml和spark.mllib中,spark.mllib是基于RDD的机器学习库, spark.ml是基于DataFrame的机器学习库。相对于RDD, DataFrame拥有更丰富的操作API, 可以进行更灵活的操作 目前, spark.ml已经进入维护状态, 不再添加新特性。

Spark ml中,提供了spearman、pearson系数计算的能力。测试案例:

package com.qm.spark.job
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.ml.linalg.{DenseVector, Vector}
import org.apache.spark.ml.stat.Correlation
import org.apache.spark.sql.expressions.UserDefinedFunction
import org.apache.spark.sql.functions.udf
import org.apache.spark.mllib.stat.Statistics
import org.apache.spark.rdd.RDD
/**
 * Description: 
 * Date: 2023/8/25
 */
object SpearmanCnt {

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("ExampleApp").setMaster("local")
    val sc = new SparkContext(conf)
    val arr1 = List(2.0, 1.0, 1.0)
    val arr2 = List(8.0, 2.0, 3.0)
    val rdd1 = sc.parallelize(arr1)
    val rdd2 = sc.parallelize(arr2)
    val d = Statistics.corr(rdd1, rdd2, "spearman")
    val d2 = Statistics.corr(rdd1, rdd2, "pearson")
    println("spearman 值:" + d)
    println("pearson 值:" + d2)
  }
}

运行结果:

通过截图,我们可以看到通过Statistics.corr的使用是可以实现spearman系数、pearson系数的计算。

Spark sql实现Spearman系数、pearson系数计算

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值