Сохранение с NamedObjects на сервере заданий Spark

Я использую последнюю версию 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

person user1384205    schedule 01.10.2016    source источник


Ответы (1)


Я думаю, вы должны определить неявный персистент. Глядя на тестовый код, я вижу что-то вроде этого

https://github.com/spark-jobserver/spark-jobserver/blob/ea34a8f3e3c90af27aa87a165934d5eb4ea94dee/job-server-extras/test/spark.jobserver/NamedObjectsSpec.scala#L20

person noorul    schedule 01.10.2016
comment
@user1384205 user1384205 Ответ помог вам? - person noorul; 04.10.2016