Spark:值reduceByKey不是成员

佐克

在对一些稀疏向量进行聚类之后,我需要在每个聚类中找到交集向量。为此,我尝试减少MLlib向量,如以下示例所示:

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors

//For Sparse Vector
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.rdd.RDD
import org.apache.spark.mllib.linalg.{Vector, Vectors}

object Recommend {

  def main(args: Array[String]) {
    // set up environment
    val conf = new SparkConf()
      .setAppName("Test")
      .set("spark.executor.memory", "2g")
    val sc = new SparkContext(conf)

    // Some vectors
    val vLen = 1800
    val sv11: Vector = Vectors.sparse(vLen,Seq( (100,1.0), (110,1.0), (120,1.0), (130, 1.0) ))
    val sv12: Vector = Vectors.sparse(vLen,Seq( (100,1.0), (110,1.0), (120,1.0), (130, 1.0), (140, 1.0)  ))
    val sv13: Vector = Vectors.sparse(vLen,Seq( (100,1.0), (120,1.0), (130,1.0) ))
    val sv14: Vector = Vectors.sparse(vLen,Seq( (110,1.0), (130, 1.0) ))
    val sv15: Vector = Vectors.sparse(vLen,Seq( (140, 1.0) ))

    val sv21: Vector = Vectors.sparse(vLen,Seq( (200,1.0), (210,1.0), (220,1.0), (230, 1.0) ))
    val sv22: Vector = Vectors.sparse(vLen,Seq( (200,1.0), (210,1.0), (220,1.0), (230, 1.0), (240, 1.0)  ))
    val sv23: Vector = Vectors.sparse(vLen,Seq( (200,1.0), (220,1.0), (230,1.0) ))
    val sv24: Vector = Vectors.sparse(vLen,Seq( (210,1.0), (230, 1.0) ))
    val sv25: Vector = Vectors.sparse(vLen,Seq( (240, 1.0) ))

    val sv31: Vector = Vectors.sparse(vLen,Seq( (300,1.0), (310,1.0), (320,1.0), (330, 1.0) ))
    val sv32: Vector = Vectors.sparse(vLen,Seq( (300,1.0), (310,1.0), (320,1.0), (330, 1.0), (340, 1.0)  ))
    val sv33: Vector = Vectors.sparse(vLen,Seq( (300,1.0), (320,1.0), (330,1.0) ))
    val sv34: Vector = Vectors.sparse(vLen,Seq( (310,1.0), (330, 1.0) ))
    val sv35: Vector = Vectors.sparse(vLen,Seq( (340, 1.0) ))

    val sparseData = sc.parallelize(Seq(
        sv11, sv12, sv13, sv14, sv15,
        sv21, sv22, sv23, sv24, sv25,
        sv31, sv32, sv33, sv34, sv35
        ))

    // Cluster the data into two classes using KMeans
    val numClusters = 3
    val numIterations = 20

    test(numClusters, numIterations, sparseData)
  }

  def test(numClusters:Int, numIterations:Int,
      data: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]) = {

    val clusters = KMeans.train(data, numClusters, numIterations)

    val predictions = data.map(v => (clusters.predict(v), v) )

    predictions.reduceByKey((v1, v2) => v1)

  }
}

该行predictions.reduceByKey((v1, v2) => v1)导致错误:

value reduceByKey is not a member of org.apache.spark.rdd.RDD[(Int, org.apache.spark.mllib.linalg.Vector)]

是什么原因呢?

奥利维尔·吉拉多(Olivier Girardot)

正如您已经猜到的,您的代码应该具有此导入:

import org.apache.spark.SparkContext._

为什么 ?因为随之而来的是一些隐式转换,对于您而言,最重要的是PairRDD隐式转换。火花会想,当你有一个RDDTuple左侧可以被视为一个关键,并会为此给你访问了几个方便的转换或类似的行动reduceByKey

问候,

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spark:值reduceByKey不是成员

来自分类Dev

值联接不是org.apache.spark.rdd.RDD的成员

来自分类Dev

值toDF不是org.apache.spark.rdd.RDD的成员

来自分类Dev

值registerAsTable不是org.apache.spark.sql.DataFrame的成员

来自分类Dev

值avro不是org.apache.spark.sql.DataFrameReader的成员

来自分类Dev

值_2不是Double spark-shell的成员

来自分类Dev

值 collectAsMap 不是 org.apache.spark.rdd.RDD 的成员

来自分类Dev

值*不是AnyVal的成员

来自分类Dev

forEach Spark Scala中的错误:值选择不是org.apache.spark.sql.Row的成员

来自分类Dev

值|| 不是String的成员-scala

来自分类Dev

值映射不是 int 的成员

来自分类Dev

Spark-“ sbt包”-“值$不是StringContext的成员”-缺少Scala插件?

来自分类Dev

Scala错误:值registerTempTable不是org.apache.spark.sql.SchemaRDD的成员

来自分类Dev

值saveToCassandra不是org.apache.spark.streaming.dstream.DStream [(String,Int)]的成员

来自分类Dev

值联接不是org.apache.spark.rdd.RDD [(Long,T)]的成员

来自分类Dev

值_1不是org.apache.spark.mllib.recommendation.Rating的成员

来自分类Dev

错误:值 cassandraFormat 不是 org.apache.spark.sql.DataFrameWriter 的成员

来自分类Dev

带有元组值的spark python中的reduceByKey

来自分类Dev

为什么Scala编译器为Spark 1.4提供“值registerKryoClasses不是org.apache.spark.SparkConf的成员”的信息?

来自分类Dev

saveAsTextFile不是Array [String] spark RDD的成员

来自分类Dev

reduceByKey不是会员

来自分类Dev

Spark中的treeReduce与reduceByKey

来自分类Dev

Spark Scala了解reduceByKey(_ + _)

来自分类Dev

spark reducebykey 忽略休息

来自分类Dev

Scastie渲染编译器错误为“值countByValue不是org.apache.spark.sql.Dataset [String]的成员”

来自分类Dev

Specs2“值in不是String的成员”

来自分类Dev

Scala:值拆分不是char的成员

来自分类Dev

Scala值toInt不是Option [String]的成员

来自分类Dev

Scala错误“值映射不是Double的成员”

Related 相关文章

  1. 1

    Spark:值reduceByKey不是成员

  2. 2

    值联接不是org.apache.spark.rdd.RDD的成员

  3. 3

    值toDF不是org.apache.spark.rdd.RDD的成员

  4. 4

    值registerAsTable不是org.apache.spark.sql.DataFrame的成员

  5. 5

    值avro不是org.apache.spark.sql.DataFrameReader的成员

  6. 6

    值_2不是Double spark-shell的成员

  7. 7

    值 collectAsMap 不是 org.apache.spark.rdd.RDD 的成员

  8. 8

    值*不是AnyVal的成员

  9. 9

    forEach Spark Scala中的错误:值选择不是org.apache.spark.sql.Row的成员

  10. 10

    值|| 不是String的成员-scala

  11. 11

    值映射不是 int 的成员

  12. 12

    Spark-“ sbt包”-“值$不是StringContext的成员”-缺少Scala插件?

  13. 13

    Scala错误:值registerTempTable不是org.apache.spark.sql.SchemaRDD的成员

  14. 14

    值saveToCassandra不是org.apache.spark.streaming.dstream.DStream [(String,Int)]的成员

  15. 15

    值联接不是org.apache.spark.rdd.RDD [(Long,T)]的成员

  16. 16

    值_1不是org.apache.spark.mllib.recommendation.Rating的成员

  17. 17

    错误:值 cassandraFormat 不是 org.apache.spark.sql.DataFrameWriter 的成员

  18. 18

    带有元组值的spark python中的reduceByKey

  19. 19

    为什么Scala编译器为Spark 1.4提供“值registerKryoClasses不是org.apache.spark.SparkConf的成员”的信息?

  20. 20

    saveAsTextFile不是Array [String] spark RDD的成员

  21. 21

    reduceByKey不是会员

  22. 22

    Spark中的treeReduce与reduceByKey

  23. 23

    Spark Scala了解reduceByKey(_ + _)

  24. 24

    spark reducebykey 忽略休息

  25. 25

    Scastie渲染编译器错误为“值countByValue不是org.apache.spark.sql.Dataset [String]的成员”

  26. 26

    Specs2“值in不是String的成员”

  27. 27

    Scala:值拆分不是char的成员

  28. 28

    Scala值toInt不是Option [String]的成员

  29. 29

    Scala错误“值映射不是Double的成员”

热门标签

归档