代码之家  ›  专栏  ›  技术社区  ›  stack0114106

为什么在使用spark会话时不能使用reduceByKey()函数

  •  -2
  • stack0114106  · 技术社区  · 6 年前
    val spark = SparkSession.builder().appName("Wordcount").master("local[*]").getOrCreate()
    val textf = spark.read.textFile("in/fruits.txt")
    import spark.implicits._
    val textf2 = textf.flatMap( x => x.split(" ") )
    val textf3 = textf2.filter ( x => x.length > 0)
    val textf4 = textf3.map( x => (x,1))  // I get only reduce() function
    

    为什么reduceByKey不可用?。

    1 回复  |  直到 6 年前
        1
  •  0
  •   user3725190    6 年前

    当您使用spark会话进行读取时,您正在使用Dataset[String]。方法reduceByKey在DataSet上不可用,但在RDD上可用。

    textf4.map( x => (x,1)).rdd.reduceByKey(...)