对 normalVectorRDD 的操作
Operation on normalVectorRDD
我想用我自己的均值和我自己的 sigma 创建一个 RDD[Vector],我已经这样做了:
val mean = Random.nextInt(100)
val sigma = 2
val data: RDD[Vector] = RandomRDDs.normalVectorRDD(sc, numRows = 180, numCols = 20).map(v => mean + sigma * v)
但我有以下错误:
overloaded method value * with alternatives:
(x: Double)Double <and>
(x: Float)Float <and>
(x: Long)Long <and>
(x: Int)Int <and>
(x: Char)Int <and>
(x: Short)Int <and>
(x: Byte)Int
cannot be applied to (org.apache.spark.mllib.linalg.Vector)
val data: RDD[Vector] = RandomRDDs.normalVectorRDD(sc, numRows = 180, numCols = 20).map(v => mean + sigma * v)
我不明白这个错误,因为在 scala 文档中,他们 RandomRDDs.normal(sc, n, p, seed) .map(lambda v: mean + sigma * v) 也
谢谢
Spark 文档。引用 .normal() 方法:
val data =
RandomRDDs.normalRDD(spark.sparkContext, 50, 1).map(v => mean + sigma * v)
这实际上运行正常。
如果您需要将转换应用于向量:
val data0 =
RandomRDDs.normalVectorRDD(spark.sparkContext, numRows = 180, numCols = 20).map(v => v.toArray.map(v => mean + sigma * v))
我想用我自己的均值和我自己的 sigma 创建一个 RDD[Vector],我已经这样做了:
val mean = Random.nextInt(100)
val sigma = 2
val data: RDD[Vector] = RandomRDDs.normalVectorRDD(sc, numRows = 180, numCols = 20).map(v => mean + sigma * v)
但我有以下错误:
overloaded method value * with alternatives:
(x: Double)Double <and>
(x: Float)Float <and>
(x: Long)Long <and>
(x: Int)Int <and>
(x: Char)Int <and>
(x: Short)Int <and>
(x: Byte)Int
cannot be applied to (org.apache.spark.mllib.linalg.Vector)
val data: RDD[Vector] = RandomRDDs.normalVectorRDD(sc, numRows = 180, numCols = 20).map(v => mean + sigma * v)
我不明白这个错误,因为在 scala 文档中,他们 RandomRDDs.normal(sc, n, p, seed) .map(lambda v: mean + sigma * v) 也
谢谢
Spark 文档。引用 .normal() 方法:
val data =
RandomRDDs.normalRDD(spark.sparkContext, 50, 1).map(v => mean + sigma * v)
这实际上运行正常。
如果您需要将转换应用于向量:
val data0 =
RandomRDDs.normalVectorRDD(spark.sparkContext, numRows = 180, numCols = 20).map(v => v.toArray.map(v => mean + sigma * v))