【问题标题】:Spark Scala MLlib assignment syntaxSpark Scala MLlib 赋值语法
【发布时间】:2018-09-17 16:02:32
【问题描述】:

我一直在阅读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】:

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

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

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

    【讨论】:

    • 这是这个实验室特有的,还是整个模式匹配的一般模糊特征?
    猜你喜欢
    • 2017-12-20
    • 2020-08-13
    • 1970-01-01
    • 2017-01-28
    • 2017-02-17
    • 1970-01-01
    • 2015-12-18
    • 2019-12-06
    • 1970-01-01
    相关资源
    最近更新 更多