Pyspark-storagelevel

提供:Dev Guides
移動先:案内検索

PySpark-StorageLevel

StorageLevelは、RDDの保存方法を決定します。 Apache Sparkでは、StorageLevelはRDDをメモリに保存するか、ディスクに保存するか、またはその両方を決定します。 また、RDDをシリアル化するかどうか、およびRDDパーティションを複製するかどうかも決定します。

次のコードブロックには、StorageLevelのクラス定義があります-

class pyspark.StorageLevel(useDisk, useMemory, useOffHeap, deserialized, replication = 1)

さて、RDDのストレージを決定するために、以下に示すさまざまなストレージレベルがあります-

  • DISK_ONLY = StorageLevel(True、False、False、False、1)
  • DISK_ONLY_2 = StorageLevel(True、False、False、False、2)
  • MEMORY_AND_DISK = StorageLevel(True、True、False、False、1)
  • MEMORY_AND_DISK_2 = StorageLevel(True、True、False、False、2)
  • MEMORY_AND_DISK_SER = StorageLevel(True、True、False、False、1)
  • MEMORY_AND_DISK_SER_2 = StorageLevel(True、True、False、False、2)
  • MEMORY_ONLY = StorageLevel(False、True、False、False、1)
  • MEMORY_ONLY_2 = StorageLevel(False、True、False、False、2)
  • MEMORY_ONLY_SER = StorageLevel(False、True、False、False、1)
  • MEMORY_ONLY_SER_2 = StorageLevel(False、True、False、False、2)
  • OFF_HEAP = StorageLevel(True、True、True、False、1)

次のStorageLevelの例を考えてみましょう。ここでは、ストレージレベル* MEMORY_AND_DISK_2、*を使用します。これは、RDDパーティションに2のレプリケーションがあることを意味します。

------------------------------------storagelevel.py-------------------------------------
from pyspark import SparkContext
import pyspark
sc = SparkContext (
   "local",
   "storagelevel app"
)
rdd1 = sc.parallelize([1,2])
rdd1.persist( pyspark.StorageLevel.MEMORY_AND_DISK_2 )
rdd1.getStorageLevel()
print(rdd1.getStorageLevel())
------------------------------------storagelevel.py-------------------------------------

コマンド-コマンドは次のとおりです-

$SPARK_HOME/bin/spark-submit storagelevel.py

出力-上記のコマンドの出力は以下のとおりです-

Disk Memory Serialized 2x Replicated