2016-07-10 6 views
2

SparkのRDDの有効範囲について混乱します。 this threadSparkの `persist`または` cache`の範囲

RDDがキャッシュされているかどうか

かによる

はRDDオブジェクトの変更可能な状態の一部です。 rdd.cacheを呼び出すと、それ以降はキャッシュにマークされます。どのスコープからアクセスするかは関係ありません。

だから、

、私は例えば、内部に作成された新しいRDDと機能を定義した場合(Pythonコード)

# there is an rdd called "otherRdd" outside the function 

def myFun(args): 
    ... 
    newRdd = otherRdd.map(some_function) 
    newRdd.persist() 
    ... 

グローバル名前空間のでしょうnewRdd生活?またはそれはmyFunの環境内でのみ表示されますか?

それはmyFunの環境内でのみ表示されている場合は、myFun終了実行後、自動的にunpersistnewRddスパークのだろうか?

答えて

2

はい、RDDがガベージコレクトされると、それは固定されていません。 myFunの外では、newRddはunpersistedです(あなたが返していないか、派生したrddであると仮定して)、answerをチェックすることもできます。