Spark(1.6) Densevector.type 不带参数

Posted

技术标签:

【中文标题】Spark(1.6) Densevector.type 不带参数【英文标题】:Spark(1.6) Densevector.type does not take parameters 【发布时间】:2018-04-07 19:48:57 【问题描述】:

我正在关注这篇文章:

http://learningfrombigdata.com/semantic-similarity-between-sentences-using-apache-spark/

但是,当我到达这部分时:

def distance(lvec: String, rvec: String): Double = 
    val l = DenseVector(lvec.split(',').map(_.toDouble))
    val r = DenseVector(rvec.split(',').map(_.toDouble))
    math.sqrt(sum((l - r) :* (l - r)))

我收到以下错误:

Name: Compile Error
Message: <console>:177: error: org.apache.spark.mllib.linalg.DenseVector.type does not take parameters
           val l = DenseVector(lvec.split(',').map(_.toDouble))
                              ^
<console>:178: error: org.apache.spark.mllib.linalg.DenseVector.type does not take parameters
           val r = DenseVector(rvec.split(',').map(_.toDouble))

我怀疑它可能与版本有关(我使用的是 Spark 1.6.0),但我不确定,并且无法在网上找到有关此错误的大量信息,不胜感激

【问题讨论】:

【参考方案1】:

缺少new

scala> import org.apache.spark.mllib.linalg.DenseVector
import org.apache.spark.mllib.linalg.DenseVector

scala> new DenseVector(Array(1, 2, 3))
res1: org.apache.spark.mllib.linalg.DenseVector = [1.0,2.0,3.0]

【讨论】:

以上是关于Spark(1.6) Densevector.type 不带参数的主要内容,如果未能解决你的问题,请参考以下文章

Spark 数据框 1.6

在仅支持 Spark 1.6 的集群上运行带有 Spark 2.0 的 Fat Jar

Spark 1.6 scala 创建数据行

Spark 1.6:java.lang.IllegalArgumentException:spark.sql.execution.id已设置

Apache Spark 1.6公布(新特性介绍)

窗口函数/scala/spark 1.6