Scala Vec[Double]没有可用的类标记

Scala Vec[Double]没有可用的类标记,scala,apache-spark,scala-breeze,Scala,Apache Spark,Scala Breeze,我对scala和spark有点陌生。现在我想在每个worker上生成一个向量。当我使用这一行时,出现了两个错误: val b = sc.parallelize(1 to n, n).map( i => DenseVector[Double]](10.0,20.0,30.0,40.0)) Vec[Double]没有可用的类标记 方法映射的参数不足:隐式证据$3:scala.reflect.ClassTag[Vec[Double]]org.apache.spark.rdd.rdd[Vec[D

我对scala和spark有点陌生。现在我想在每个worker上生成一个向量。当我使用这一行时,出现了两个错误:

val b = sc.parallelize(1 to n, n).map( i => DenseVector[Double]](10.0,20.0,30.0,40.0))
Vec[Double]没有可用的类标记 方法映射的参数不足:隐式证据$3:scala.reflect.ClassTag[Vec[Double]]org.apache.spark.rdd.rdd[Vec[Double]]。未指定值参数证据$3。 有人能帮我吗

以下内容对我很有用

scala> import breeze.linalg._
scala> val n = 2
n: Int = 2
scala> val b = sc.parallelize(1 to n, n).map( i => DenseVector[Double](10.0,20.0,30.0,40.0))
b: org.apache.spark.rdd.RDD[breeze.linalg.DenseVector[Double]] = MapPartitionsRDD[1] at map at <console>:24

我相信这一行有很多语法错误。修复它们,然后我们可能会提供帮助。Parrallize函数的完整签名是def parallelize[T]seq:seq[T],numSlices:Int=defaultParallelismimplicit arg0:ClassTag[T]:RDD[T]。。。查看隐式参数。您需要为各自的类型创建ClassTag的隐式实例。谢谢。我想我被scala中的通用向量和breeze包中的向量弄糊涂了。应该这样写:val b=sc.parallelize1到4,4.map i=>10,20,30,40。作为[DenseVector[Double]的实例,Mllib和breeze的语法不同。我用微风。啊,接受更正。我把你的breeze代码放在spark shell中,它就可以工作了。哈哈。我是这样写的10,20,30,40.一个用于简单类型转换的[DenseVector[Double]]的替代。
   scala> b.take(1)
res1: Array[breeze.linalg.DenseVector[Double]] = Array(DenseVector(10.0, 20.0, 30.0, 40.0))