RDD分区个数
1在创建RDD时可以指定分区数量
sc.textFile("hdfs:linux01:9000/data",5) 这里的5就是指定的分区数量
2在启动Spark-shell时指定cores ,也是分区数量
/opt/apps/spark-3.0.0/bin/spark-shell --master spark://linux02:7077 --executor-memory 1g --total-executor-cores 6
如果在创建RDD时没有指定分区数量那么它将使用默认的分区数量最大为6
一般情况下根据文件block块,一个block块对应一个分区
但是也有特殊情况比如一个文件相比其他文件比较大这时将会有多个分区来处理他
让我们看下面代码
scala> val lines = sc.textFile("hdfs://linux01:9000/data")
lines: org.apache.spark.rdd.RDD[String] = hdfs://linux01:9000/data MapPartitionsRDD[1] at textFile at <console>:24
scala> lines.partitions.length
res0: Int = 3
scala> val lines = sc.textFile("hdfs://linux01:9000/data",2)
lines: org.apache.spark.r