深圳幻海软件技术有限公司欢迎您!

幻海优品

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 ,假,假,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 ----------来自pyspark导入的---------------------------  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

免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除