spark RDD的创建方式
- 从集合(内存中创建出来)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() } } ```
- 从外部存储(文件)创建RDD
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("spark") val sparkContext = new SparkContext(sparkConf) val fileRDD: RDD [ String ] = sparkContext.textFile("input") sparkContext.stop() - 从其他的RDD创建
主要是通过一个RDD运算后,再产生新的RDD - 直接创建RDD(new)
使用new的方式直接构造RDD,一般由spark框架自身使用
理解两个概念:
- 并行:就是cpu核数的多少,有几核就代表能并行几个任务
- 并发:就是一瞬间发起的任务数量,需要排队执行
有什么不同见解可以在评论区共同讨论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现