2016-10-01 38 views
0

使用最新的SJS版本(主)并且应用程序扩展了SparkHiveJob。在runJob实现,我有以下Spark作业服务器中的NamedObjects的持久性

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 

回答