我正在为正确使用mapPartitions
而苦苦挣扎。
我已经成功地使用map
运行了代码,但是由于我不想为每一行都加载资源,所以我想切换到mapPartitions
。
下面是一些简单的示例代码:
import spark.implicits._
val dataDF = spark.read.format("json").load("basefile")
val newDF = dataDF.mapPartitions( iterator => {
iterator.map(p => Seq(1,"1")))
}).toDF("id", "newContent")
newDF.write.json("newfile")
这会导致异常
Exception in thread "main" java.lang.ClassNotFoundException: scala.Any
我猜这与打字有关。可能是什么问题?
答案 0 :(得分:2)
问题是Seq(1,"1")
的类型为Seq[Any]
,无法从mapPartitions
返回,请尝试Seq(1,2)
intsead