spark RDD的创建方式

  1. 从集合(内存中创建出来)RDD
    val sparkConf = new sparkConf().setMaster("local[*]").setAppName("spark")
    // * 号代表,当前电脑有几个核心就分几个线程,不写就是用单线程,[]中括号内的数字代表线程数
    val sparkContext = new SparkContext(sparkConf)
    val rdd1 = sparkContext.parallelize(
      List(1,2,3,4)
    )
    val add2 = sparkContext.makeRDD(
      List(1,2,3,4)
    )
    rdd1.collect().foreach(println)
    rdd2.collect().foreach(println)
    sparkContext.stop()
    
    

// 或者这个
package lambert.fun.spark

import org.apache.log4j.{Level, Logger}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/** *
 *
 * @author Lambert
 *         date 2022-08-20
 *         explain 
 */
object RDD_Memory {

  def main(args: Array[String]): Unit = {

    Logger.getLogger("org").setLevel(Level.ERROR)
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    val sc = new SparkContext(sparkConf)
    val seq = Seq[Int](1, 2, 3, 4)
    val rdd: RDD[Int] = sc.parallelize(seq) // 并行
    val rdd: RDD[Int] = sc.makeRDD(seq) // makeRDD 底层就是调用了RDD的parallelize方法
    rdd.collect().foreach(println)
    sc.stop()

  }

}

```
  1. 从外部存储(文件)创建RDD
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("spark")
    val sparkContext = new SparkContext(sparkConf)
    val fileRDD: RDD [ String ] = sparkContext.textFile("input")
    sparkContext.stop()
    
    
  2. 从其他的RDD创建
    主要是通过一个RDD运算后,再产生新的RDD
  3. 直接创建RDD(new)
    使用new的方式直接构造RDD,一般由spark框架自身使用

理解两个概念:

  • 并行:就是cpu核数的多少,有几核就代表能并行几个任务
  • 并发:就是一瞬间发起的任务数量,需要排队执行
posted @ 2022-08-20 09:46  lambertlt  阅读(66)  评论(0编辑  收藏  举报