import org.apache.spark.{SparkConf, SparkContext} object Partition { // RDD: 弹性分布式数据集,特点:不可变的,可并行计算的。 // 1. 分区和分区器 // hash分区器 = hash(数据)%分区数 ===> 编号 // 2. 自定义分区器 def main(args: Array[String]): Unit = { // 创建SparkContext val conf = new SparkConf().setAppName("Partition").setMaster("local[*]") val sc = new SparkContext(conf) // 1. 从集合中创建 val rdd = sc.parallelize(List(1,2,3,4,5,6,7,8,9,10),3) // 查看分分区数: 默认为当前机器的CPU核数 println(rdd.partitions.length,rdd.getNumPartitions) // 将 RDD 保存为文本文件,保存路径为“output” rdd.saveAsTextFile("output1") // 2. 从外部存储系统(如HDFS、HBase、共性文件系统)中创建 /* val rdd1 = sc.textFile("hdfs://hadoop100:8020/wcinput/word2.txt") val rdd2 = sc.textFile("hdfs://hadoop100:8020/apache-hive-2.3.4-bin.tar.gz") // 查看分分区数 println(rdd1.partitions.length,rdd1.getNumPartitions) println(rdd2.partitions.length,rdd2.getNumPartitions)*/ } }