2016-10-01 60 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 

回答