Serialization Spark中的Case类序列化
在Spark应用程序(Spark 2.1)中,我试图发送一个case类作为要在执行器上运行的函数的输入参数Serialization Spark中的Case类序列化,serialization,apache-spark-sql,case-class,Serialization,Apache Spark Sql,Case Class,在Spark应用程序(Spark 2.1)中,我试图发送一个case类作为要在执行器上运行的函数的输入参数 object TestJob extends App { val appName = "TestJob" val out = "out" val p = Params("my-driver-string") val spark = SparkSession.builder() .appName(appName) .getOrCreate() impo
object TestJob extends App {
val appName = "TestJob"
val out = "out"
val p = Params("my-driver-string")
val spark = SparkSession.builder()
.appName(appName)
.getOrCreate()
import spark.implicits._
(1 to 100).toDF.as[Int].flatMap(i => Dummy.process(i, p))
.write
.option("header", "true")
.csv(out)
}
object Dummy {
def process(i: Int, v:Params): Vector[String] = {
Vector { if( i % 2 == 1) v + "_odd" else v + "_even" }
}
}
case class Params(v: String)
当我使用master local[*]运行它时,一切都很顺利,而在集群中运行时,Params类状态没有序列化,输出结果是
null\u偶数
null\u奇数
你能帮我理解我做错了什么吗?通过谷歌搜索,我发现了这篇文章,它为我提供了解决方案: 最终问题是由于扩展应用程序造成的