2017-07-07 6 views
0

誰でもSPARKがhdfsデータを読み込んでメインメモリでどのように管理するのか理解してもらえますか?言い換えればSPARKはどのようにデータを読み込み、メモリで管理するのですか

私はHadoopのファイルから3 RDD、最初RDDを作成し、その上にいくつかの変換を行う第二RDDを作成し、再び第二RDDに何らかの変換を行うと、呼び出し、その後第三RDDを作成した場合3番目のRDDでのいくつかのアクション。

  1. hdfsから何回データを読み込むのですか?
  2. 3つのRDDデータは、キャッシュを呼び出さないか、明示的に保持しないと、メモリに残りますか?すなわち、第3RDDでアクションが実行されているときに、第1RDDデータがメモリに残っているかどうかを判断する。
+1

RDDは遅延です。変換操作はHDFSデータを読み取らない –

+0

しかし、私は3番目のRDDでいくつかのアクションを実行しているので、アクションデータを実行した後はHDFSから正しく読み込まれますか? – Rahul

+0

はい、ただし、3つのRDDがすべて同じファイルで動作している場合は1回だけです –

答えて

1

すべてのRDDが1つのファイルを共有する場合、データはアクションで1回だけ読み取られる。

第3のRDDを再生するDAGは、上述したように、RDD#3だけが実際のデータを含むため、メモリに格納されます。

+0

clarification.oneより多くのクエリをお寄せいただきありがとうございます。この場合、SparkがHDFSからデータを読み込むかどうかメモリから。 – Rahul

+0

データを一度読んだら、もう一度読む必要はありませんが、コードを確認する必要があります –

0

RDD3をキャッシュしないと、SparkはHDFSからデータを読み込みます。それ以外の場合は、メモリから読み込みます。

関連する問題