"missing parameter type" 在分组中

"missing parameter type" in groupBy

我是一个 scala 新手,很难理解应该是一行简单的代码。我执行 .groupBy 操作并关闭 "it",但编译器抱怨 "missing parameter type",我不知道如何修复它。这是确切的代码(它在不同的网络上,所以我必须重新输入 - 请原谅任何拼写错误):

val rddSAInCache: RDD[Map[String, Any]] = getCache(SAInCacheExported, rddconfig)
  .filter(it => it.path(EventType).getOrElse(NONE) == "SAInCache")
  .map(it => 
    Map(
      ("SAInCache" -> it.path(Time).getOrElse(NONE)), 
      (RequestID -> it.path(RequestID).getOrElse(NONE))
    )
  )
  .groupBy(it => it.path(RequestID.getOrElse(NONE))

编译器能够推断出 "it" 在过滤器和映射中都是一个 Map[String, Any],但在 groupBy 中不是。为什么??

建议多于答案:

尝试拆分链式调用:

val foo = rdd map f
val bar = foo groupBy g

获取 REPL 中 foo 的类型。

你要求它解决 map 的结果类型,它是一个 Map,连同 groupBy,它重载并带有隐式。

在不了解 API 的情况下,如果类型参数不可推断,我不会感到惊讶。