【问题标题】:Case Class serialization in SparkSpark中的案例类序列化
【发布时间】:2018-07-06 10:15:41
【问题描述】:

在 Spark 应用程序 (Spark 2.1) 中,我试图发送一个案例类作为要在执行程序上运行的函数的输入参数

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_even null_odd ...

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

【问题讨论】:

    标签: serialization apache-spark-sql case-class


    【解决方案1】:

    谷歌搜索我发现这篇文章给了我解决方案:Spark broadcasted variable returns NullPointerException when run in Amazon EMR cluster

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

    【讨论】:

      猜你喜欢
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 2017-03-29
      • 2020-04-03
      • 2013-08-12
      • 2011-05-03
      • 2011-12-06
      相关资源
      最近更新 更多