reduceByKey 不是成员

reduceByKey is not a member

您好,我有代码可以简单地从文档中获取字数。在生成输出之前,我还需要使用映射来查找数据值。这是代码。

   requests
    .filter(_.description.exists(_.length > 0))
    .flatMap { case request =>
      broadcastDataMap.value.get(request.requestId).map {
        data =>
          val text = Seq(
            data.name,
            data.taxonym,
            data.pluralTaxonym,
            request.description.get
          ).mkString(" ")
          getWordCountsInDocument(text).map { case (word, count) =>
            (word, Map(request.requestId -> count))
          }
      }
    }
    .reduceByKey(mergeMap)

错误信息是

reduceByKey is not a member of org.apache.spark.rdd.RDD[scala.collection.immutable.Map[String,scala.collection.immutable.Map[Int,Int]]]

我该如何解决这个问题?我确实需要调用 getWordCountsInDocument。谢谢!

reduceByKey 是 PairRDDFunctions 的成员,基本上它以 RDD[(K, V)] 的形式隐式添加到 RDD。您可能需要将结构展平为 RDD[String, Map[Int,Int]]

如果您可以提供输入的类型(requestsbroadcastDataMapmergeMap),我们或许可以为该转换提供一些帮助。

根据提供的类型,假设 getWordCountsInDocument 的 return 类型是某个 Collection[(word, count: Int)]

变化中:

broadcastDataMap.value.get(request.requestId).map {

broadcastDataMap.value.get(request.requestId).flatMap {

应该可以解决这个问题。