我使用最新的 SJS 版本(主),应用程序扩展了 SparkHiveJob。在 runJob 实现中,我有以下内容
val eDF1 = hive.applySchema(rowRDD1, schema)
我想坚持 eDF1 并尝试了以下
val rdd_topersist = namedObjects.getOrElseCreate("cleanedDF1", {
NamedDataFrame(eDF1, true, StorageLevel.MEMORY_ONLY)
})
发生以下编译错误的地方
could not find implicit value for parameter persister: spark.jobserver.NamedObjectPersister[spark.jobserver.NamedDataFrame]
not enough arguments for method getOrElseCreate: (implicit timeout:scala.concurrent.duration.FiniteDuration, implicit persister:spark.jobserver.NamedObjectPersister[spark.jobserver.NamedDataFrame])spark.jobserver.NamedDataFrame. Unspecified value parameter persister.
显然这是错误的,但我不知道出了什么问题。我对 Scala 还很陌生。
有人可以帮助我从 NamedObjectSupport 中理解这种语法吗?
def getOrElseCreate[O <: NamedObject](name: String, objGen: => O)
(implicit timeout: FiniteDuration = defaultTimeout,
persister: NamedObjectPersister[O]): O