You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark MLlib主指南Scala测试代码翻译及技术咨询

Spark MLlib 基础统计代码(中文翻译版)

嘿,我帮你把这段出自《Spark MLlib:机器学习库(MLlib)主指南》的Scala代码及相关内容做了中文翻译,全程保留代码本身、技术术语、数学符号和原有格式不变,内容如下:

完整代码(含中文注释)

import org.apache.spark.ml.linalg.{Matrix, Vectors, Vector}
import org.apache.spark.ml.stat.Correlation
import org.apache.spark.sql.Row
import scala.collection.Seq

object BasicStatistics {
  def main(args: Array[String]): Unit = {
    // 构造特征数据序列:包含稀疏向量与稠密向量两种类型
    val data: Seq[Vector] = Seq(
      Vectors.sparse(4, Seq((0, 1.0), (3, -2.0))),  // 4维稀疏向量:仅索引0(值1.0)、索引3(值-2.0)有非零值
      Vectors.dense(4.0, 5.0, 0.0, 3.0),           // 4维稠密向量:依次存储各维度的数值
      Vectors.dense(6.0, 7.0, 0.0, 8.0),           // 4维稠密向量:第三维度值为0
      Vectors.sparse(4, Seq((0, 9.0), (3, 1.0)))   // 补全原文未写完的稀疏向量示例
    )

    // 将向量序列转换为Spark DataFrame,列名设为"features"
    val df = spark.createDataFrame(data.map(Tuple1.apply)).toDF("features")

    // 计算皮尔逊相关系数矩阵(默认计算方式)
    val Row(coeff1: Matrix) = Correlation.corr(df, "features").head
    println("皮尔逊相关系数矩阵:\n" + coeff1.toString)

    // 指定计算斯皮尔曼相关系数矩阵
    val Row(coeff2: Matrix) = Correlation.corr(df, "features", "spearman").head
    println("斯皮尔曼相关系数矩阵:\n" + coeff2.toString)
  }
}

核心术语对照(保留原英文便于技术对接)

  • Vector/Vectors:Spark MLlib的向量工具类,支持*稠密向量(Dense Vector)和稀疏向量(Sparse Vector)*两种存储形式
  • Correlation:MLlib中用于计算特征间相关系数的工具类
  • 皮尔逊相关系数(Pearson Correlation):衡量变量线性相关程度的常用指标,为默认计算方式
  • 斯皮尔曼相关系数(Spearman Correlation):基于变量秩次的非参数相关系数,适配非线性或非正态分布的数据场景

内容的提问来源于stack exchange,提问作者Dale Angus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:13:27