0

計算されたrddを別の場所に保存する方法を知りたい。 計算なしで通知するためにも同様に拡張します。異なるS3バケットにrddを同時に保存する方法

rdd = <do some action> 

私はrdd.saveAstextFile("s3://<location1>")location1、 に保存されますが、私はlocation2に保存したい場合も、どのようにそれを行うには知っていますか? persist/cache(私の理解ではマスターノードのcache/persist)は、rddのサイズが非常に大きいかどうかは分かりません。

助けてください。

答えて

0

私はマスターノードにキャッシュしています。

あなたはこれをどこから見つけましたか?これは正しくありません。以下のスパークの文書に従って説明があります。

Sparkの最も重要な機能の1つは、操作全体のメモリ内のデータセットを永続化(またはキャッシュ)することです。 RDDを永続化すると、各ノードは計算したパーティションをメモリに格納し、そのデータセット(またはそれから派生したデータセット)の他のアクションで再利用します。これにより、将来のアクションをはるかに高速にすることができます(多くの場合、10倍以上)。キャッシングは、反復アルゴリズムと高速対話式の使用のための重要なツールです。

また、

キャッシュ()メソッド)はStorageLevel.MEMORY_ONLY

すなわちキャッシュ(これは、デフォルトのストレージ・レベルを使用するための省略形である持続に類似している(StorageLevel .MEMORY_ONLY)。 このリンクをたどって、要件ごとに使用するストレージレベルを決定します。 https://spark.apache.org/docs/2.1.0/programming-guide.html#which-storage-level-to-choose

次の2つの場所に保存するために、以下の使用することができます。

rdd.cache() 
rdd.saveAstextFile("s3://<location1>") 
rdd.saveAstextFile("s3://<location2>") 

詳細はここにある:https://spark.apache.org/docs/2.1.0/programming-guide.html#rdd-persistence

関連する問題