私はスパークを使用していますいくつかの計算を行います。 5分ごとに、私は新しいデータフレームを得ました。私は、辞書に入って来て、古いデータフレームは、辞書から飛び出し、このsparkでデータフレームを解放するには?
dict_1_hour[timestamp] = dataframe
新しいデータフレームのようdict_1_hourと呼ばれる辞書にそれを置きます。最新の1時間のデータは12データフレームのみが保持されます。
私はそれらのデータフレームをどのように解放してメモリリークがないことを確認する必要がありますか?データフレームのための
一つのAPIは、それを行うことができそうです。
unpersist(blocking=True)
Marks the DataFrame as non-persistent, and remove all blocks for it from memory and disk.
私は辞書からのデータフレームをポップだと思う他の方法(私が何のためのパラメータを知りません)。
dict_1_hour.pop(timestamp)
Pythonは、未使用の変数を自動的に解放する必要があります。しかし、ここではそれが適切かどうかはわかりません。私はあなたが私がRDD
に似たすべてのDataFrame
、のしてください
は、なぜあなたはメモリリークがあると思いますか? Pythonはガベージコレクションされており、一般的にあなたのためにメモリを管理するのに非常に優れています。 –
実際にメモリリークが発生しています。メモリリークにより、Spark Driverプログラムが@Akshat Mahajanを停止させた –