224

永続性に関して、とsparkRDDの違いは何ですか?cache()persist()

4

6 に答える 6

240

ではcache()、デフォルトのストレージ レベルのみを使用します。

  • MEMORY_ONLYRDD
  • MEMORY_AND_DISKデータセット

では、 RDDDatasetpersist()の両方に必要なストレージ レベルを指定できます。

公式ドキュメントから:

  • () または() メソッドRDDを使用して、 を永続化するようにマークできます。persistcache
  • 永続化されたそれぞれRDDは、異なるを使用して保存できますstorage level
  • ( cache) メソッドは、StorageLevel.MEMORY_ONLY(デシリアライズされたオブジェクトをメモリに格納する) デフォルトのストレージ レベルを使用するための省略形です。

persist()以外のストレージ レベルを割り当てる場合に使用します。

  • MEMORY_ONLYRDD
  • またはデータセットMEMORY_AND_DISKの場合

公式ドキュメントへの興味深いリンク:どのストレージレベルを選択するか

于 2014-11-12T08:42:52.653 に答える
50

違いはありません。からRDD.scala

/** Persist this RDD with the default storage level (`MEMORY_ONLY`). */
def persist(): this.type = persist(StorageLevel.MEMORY_ONLY)

/** Persist this RDD with the default storage level (`MEMORY_ONLY`). */
def cache(): this.type = persist()
于 2014-11-11T19:13:04.113 に答える