Case Class Spark 中的序列化

Case Class serialization in Spark

在 Spark 应用程序 (Spark 2.1) 中,我正在尝试发送一个案例 class 作为函数的输入参数,该函数的目的是 运行 执行程序

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 class 状态没有被序列化并且输出结果在 null_even null_odd ...

你能帮我理解我做错了什么吗?

谷歌搜索我发现这个 post 给了我解决方案:

最终问题是由于扩展应用程序