说明
一旦 RDD 创建成功, 就可以通过并行的方式去操作这个分布式的数据集了.
parallelize和makeRDD算子效果是一模一样的.
parallelize和makeRDD还有一个重要的参数就是把数据集切分成的分区数.
Spark 会为每个分区运行一个任务(task). 正常情况下, Spark 会自动的根据你的集群来设置分区数
案例
import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object CreateRDD {def main(args: Array[String]): Unit = {// 1. 得到SparkContextval conf = new SparkConf().setMaster("local[3]").setAppName("CreateRDD")val sc = new SparkContext(conf)// 2. 创建RDD 从scala集合得到RDDval arr1 = Array(30, 50, 70, 60, 10, 20)// val rdd: RDD[Int] = sc.parallelize(arr1)//makeRDD 和parallelize 方法是一模一样的.val rdd: RDD[Int] = sc.makeRDD(arr1)// 3. 转换// 4. 行动算子 ,如果数据量太大的话,可能会给你的driver撑爆.val arr: Array[Int] = rdd.collect()arr.foreach(println)// 5. 关闭SparkContextsc.stop()}}
输出
305070601020
