RDD的创建方式
-
从外部存储系统中获取
-
从父RDD转换得到新的RDD
-
调用SparkContext的parallelize方法,将Driver上的数据集并行化,转化为分布式的RDD。
-
更改RDD的持久性(persistence),例如cache()函数。默认RDD计算后会在内存中清除。通过cache函数将计算后的RDD缓存在内存中。
创建方式两种:
#第一类方式是通过文件系统构造RDD,代码如下所示:
val rdd1 = sc.textFile(“hdfs://centos:9000/input/data.txt”) #
val rdd1 = sc.textFile("/input/data.txt") #
#这里例子使用的是本地文件系统,所以文件路径协议前缀是file://。
val rdd3 = sc.textFile(“file:///D:/sparkdata.txt”, 1)
val rdd3:RDD[String] = sc.textFile(“file:///D:/sparkdata.txt”, 1)#第二类方式从内存里构造RDD,使用的方法:makeRDD和parallelize方法
val rdd01 =sc.makeRDD(List(1,2,3,4))
val rdd02 = sc.parallelize(List(1,2,3,4))
val rdd2 = sc.parallelize(Array(1,2,3,4,5),2) #第二个参数2是设置的分区
大家看到了RDD本质就是一个数组,因此构造数据时候使用的是List(链表)和Array(数组)类型。