You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala使用foldLeft时报object RDD does not take type parameters错误如何解决

错误原因

RDD[(String, Iterable[SomeClass])]写法不符合Spark API规范。Spark的RDD伴生对象没有提供带类型参数的直接构造方法,该写法会被识别为给RDD伴生对象传入类型参数,因此抛出对应报错。

解决方案

foldLeft的第一个参数需要传入目标类型的空RDD作为初始值,你需要通过SparkContext实例的emptyRDD方法构造:

  • 若直接使用SparkContext实例(通常命名为sc),将初始值替换为sc.emptyRDD[(String, Iterable[SomeClass])]
  • 若使用Spark 2.x+的SparkSession实例(通常命名为spark),可通过spark.sparkContext.emptyRDD[(String, Iterable[SomeClass])]构造

修正后的完整代码:

items.foldLeft(sc.emptyRDD[(String, Iterable[SomeClass])])((total, item) => total.union(fetchRDD(item)))

注:原代码末尾缺少1个右括号,上述修正代码已补齐。

内容的提问来源于stack exchange,提问作者Jelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 10:24:00