大象教程
首页
Spark
Hadoop
HDFS
MapReduce
Hive
Spark 教程
Spark 教程
Spark 基本架构及运行原理
Spark 安装(本地模式)
Spark 安装(集群模式)
Spark Shell 的使用
使用Intellij idea编写Spark应用程序(Scala+Maven)
使用Intellij idea编写Spark应用程序(Scala+SBT)
SparkContext
Spark Stage
Spark Executor
Spark RDD
Spark RDD 的创建方式
Spark RDD 缓存机制
Spark 键值对 RDD
Spark RDD 基本操作
Spark RDD 依赖关系图
Spark Map 和 FlatMap 的比较
Spark DAG
Spark 集群管理器
Spark spark-submit 提交应用程序
Spark 共享变量
Spark SQL
Spark SQL 教程
Spark SQL 数据类型
Spark SQL DataFrame
Spark SQL 数据源
Spark SQL SparkSession
Spark SQL DataSet
RDD、DataFrame和DataSet的区别
Spark Streaming
Spark Streaming 教程
Spark Streaming DStream
Spark Streaming 检查点(checkpoint)
Spark GraphX
Spark GraphX 教程
Spark GraphX 图操作
Spark GraphX 算法实例
PySpark 教程
PySpark 教程
PySpark 环境设置
PySpark SparkContext
PySpark RDD
PySpark 广播和累加器
PySpark SparkConf
PySpark SparkFiles
PySpark 存储级别
PySpark MLlib
PySpark 序列化器
#PySpark 存储级别 StorageLevel 决定如何存储 RDD。在 Apache Spark 中,StorageLevel 决定 RDD 是应该存储在内存中还是应该存储在磁盘上,或者两者兼而有之。它还决定是否序列化 RDD 以及是否复制 RDD 分区。 以下代码块具有 StorageLevel 的类定义: ```python 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。 ```python ------------------------------------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------------------------------------- ``` 执行结果如下: ```bash $SPARK_HOME/bin/spark-submit storagelevel.py Disk Memory Serialized 2x Replicated ```
加我微信交流吧