关于spark的RDD的分区的一些说明
把python的数据类型,list,tuple,字符串str,集合set,以及字典这些数据类型,转换为rdd类型,可以采用parallelize方法进行转换
对于parallelize方法:
parallelize([1,2,3,4,5])
我们可以通过numSlices这个参数可以指定我们的分区数
假设我们将分区数设为3个分区,分区数是从0开始的,
分别是0分区,1分区,2分区
数据划分时,起始位置start,结束位置end
0分区:[0,1) 从列表数的下标进行取值 list0[0]
start (当前分区数 0 * 数据长度 5)/总分区数3=0
end((当前分区数 0+1)数据长度5)/总分区数 3=1 有余数向下取整
1分区 [1,3) list[1],list[2]
start (当前分区数1数据长度5)/总分区数 3 =1
end((当前分区数 1+1)数据长度5)/总分区数 3=3
2分区[3,5) list[3] list[4]
start (当前分区数2数据长度 5)/总分区数=3
end ((当前分区数 2+1)*数据长度5)/总分区数3=5
代码如下:
from pyspark import SparkContext
sc=SparkContext()