import org.apache.spark.{SparkConf, SparkContext}object Partition {// RDD: 弹性分布式数据集,特点:不可变的,可并行计算的。// 1. 分区和分区器// hash分区器 = hash(数据)%分区数 ===> 编号// 2. 自定义分区器def main(args: Array[String]): Unit = {// 创建SparkContextval 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)*/}
}