Spark Scala MLlib赋值语法

问题描述 投票:1回答:1

我一直在浏览https://spark.apache.org/docs/latest/ml-statistics.html的指南,我注意到他们正在使用这种语法进行val赋值:

val Row(coeff1: Matrix) = Correlation.corr(df, "features").head

有人可以详细说明这意味着什么吗?它看起来类似于Scala如何处理正则表达式组提取...

scala apache-spark apache-spark-mllib
1个回答
2
投票

它只不过是一个pattern matching。为了使它更明显,你将其重写为:

val coeff1 = Correlation.corr(df, "features").head match {
  case Row(coeff1: Matrix) => coeff1
}

换句话说,它只是试图匹配从.head调用返回的对象和成功匹配,它创建一个引用(coeff1)到返回的Matrix中包含的Row对象。

© www.soinside.com 2019 - 2024. All rights reserved.