说明

一旦 RDD 创建成功, 就可以通过并行的方式去操作这个分布式的数据集了.
parallelize和makeRDD算子效果是一模一样的.
parallelize和makeRDD还有一个重要的参数就是把数据集切分成的分区数.
Spark 会为每个分区运行一个任务(task). 正常情况下, Spark 会自动的根据你的集群来设置分区数

案例

  1. import org.apache.spark.rdd.RDD
  2. import org.apache.spark.{SparkConf, SparkContext}
  3. object CreateRDD {
  4. def main(args: Array[String]): Unit = {
  5. // 1. 得到SparkContext
  6. val conf = new SparkConf().setMaster("local[3]").setAppName("CreateRDD")
  7. val sc = new SparkContext(conf)
  8. // 2. 创建RDD 从scala集合得到RDD
  9. val arr1 = Array(30, 50, 70, 60, 10, 20)
  10. // val rdd: RDD[Int] = sc.parallelize(arr1)
  11. //makeRDD 和parallelize 方法是一模一样的.
  12. val rdd: RDD[Int] = sc.makeRDD(arr1)
  13. // 3. 转换
  14. // 4. 行动算子 ,如果数据量太大的话,可能会给你的driver撑爆.
  15. val arr: Array[Int] = rdd.collect()
  16. arr.foreach(println)
  17. // 5. 关闭SparkContext
  18. sc.stop()
  19. }
  20. }

输出

  1. 30
  2. 50
  3. 70
  4. 60
  5. 10
  6. 20