0

最新の 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
4

1 に答える 1

0

暗黙の永続化を定義する必要があると思います。テストコードを見ると、こんな感じ

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

于 2016-10-01T04:46:50.943 に答える