[解決済み] (py)sparkのすべてのデータフレームの非存在化
質問
私は、現在の状態を永続化したいいくつかのポイントがあるスパークアプリケーションです。これは通常、大きなステップの後、または複数回使用したい状態をキャッシュすることです。データフレームで2回目のキャッシュを呼び出すと、新しいコピーがメモリにキャッシュされるようです。私のアプリケーションでは、これはスケールアップする際のメモリの問題につながります。私の現在のテストでは、あるデータフレームは最大で100MB程度ですが、中間結果の累積サイズは、エグゼキュータに割り当てられたメモリを超えて大きくなっていきます。この挙動を示す小さな例を以下に示します。
cache_test.py:
from pyspark import SparkContext, HiveContext
spark_context = SparkContext(appName='cache_test')
hive_context = HiveContext(spark_context)
df = (hive_context.read
.format('com.databricks.spark.csv')
.load('simple_data.csv')
)
df.cache()
df.show()
df = df.withColumn('C1+C2', df['C1'] + df['C2'])
df.cache()
df.show()
spark_context.stop()
simple_data.csvです。
1,2,3
4,5,6
7,8,9
アプリケーションのUIを見ると、新しいカラムのあるデータフレームに加え、元のデータフレームのコピーがあります。元のコピーを削除するには
df.unpersist()
withColumn の行の前にあります。これは、キャッシュされた中間結果を削除するために推奨される方法でしょうか(つまり、すべての
cache()
).
また、キャッシュされたオブジェクトをすべてパージすることは可能でしょうか。私のアプリケーションでは、単にすべてのメモリをパージして次のファイルに移ることができる自然なブレイクポイントがあります。入力ファイルごとに新しいsparkアプリケーションを作成することなく、これを実行したいのです。
よろしくお願いします。
どのように解決するのですか?
Spark 2.x
を使用することができます。
Catalog.clearCache
:
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate
...
spark.catalog.clearCache()
スパーク1.x
を使用することができます。
SQLContext.clearCache
というメソッドがあります。
インメモリキャッシュから、キャッシュされたすべてのテーブルを削除します。
from pyspark.sql import SQLContext
from pyspark import SparkContext
sqlContext = SQLContext.getOrCreate(SparkContext.getOrCreate())
...
sqlContext.clearCache()
関連
-
PythonはWordの読み書きの変更操作を実装している
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み】全てのブラウザで、Webページのキャッシュを制御するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python jiabaライブラリの使用方法について説明
-
Python百行で韓服サークルの画像クロールを実現する
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法