![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
文章平均质量分 50
浮生醉清风i
这个作者很懒,什么都没留下…
展开
-
SparkStreaming学习笔记
一、什么是SparkStreamingSpark Streaming 是 Spark 核心 API 的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。为了实现流式处理数据。二、创建SparkStreaming环境对象val conf = new SparkConf().setMaster("local[*]").setAppName("streaming")// 创建环境对象,需要传递两个参数 第一个是环境配置 第二个是采集的周期val streamContext = n原创 2021-07-12 15:00:30 · 224 阅读 · 0 评论 -
SparkSQL学习笔记(一)
一、DataFrame和DataSetDataFrame是一个分布式数据容器,除了记录数据以外,还记录数据的结构信息。Dataset是一个由特定领域的对象组成强类型(typedrel)集合,可以使用函数(DSL)或关系运算(SQL)进行并行的转换操作。Dataset可以认为是DataFrame的一个特例,并且Dataset和DataFrame都是懒加载的,只有触发行动算子才会执行操作。二、创建sparkSQL的运行环境def main(args: Array[String]): Uni原创 2021-07-06 14:13:27 · 2376 阅读 · 0 评论 -
Spark源码解读(三)
一、shuffle的过程shuffle是必须要落盘的,在shuffleRDD肯定会读取文件。shuffle的过程,多个task先去读索引文件找到位置之后,再去读数据文件。多个任务也能往同一个文件中写入数据。写数据的过程:case stage: ShuffleMapStage => ... // 创建shuffleTask,去落盘数据 new ShuffleMapTask(stage.id, stage.latestInfo.attemptNumber, taskB原创 2021-07-01 14:48:46 · 536 阅读 · 0 评论 -
Spark源码解读(二)
二、通信环境的建立private[spark] def createSparkEnv(...): SparkEnv = { SparkEnv.createDriverEnv(conf, isLocal, listenerBus, SparkContext.numDriverCores(master, conf))}----------------------------------------------------------private[spark] def createDriverE原创 2021-06-25 14:24:42 · 231 阅读 · 0 评论 -
Spark学习笔记(二)
※ 转换算子1. distinct:去除重复数据val value: RDD[Int] = rdd.distinct()去重的原理:map(x => (x, null)).reduceByKey((x, _) => x, numPartitions).map(_._1)2. coalesce:缩减分区,默认不会打乱数据的分区组合,可能会导致数据倾斜,所以可以进行shuffle处理。当然也可以进行增加分区的操作,需要和shuffle操作一起,否则不起作用。因为新增加的是个空原创 2021-06-04 12:02:28 · 231 阅读 · 1 评论 -
Spark学习笔记(一)
一、Spark 简述Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。二、开始Spark// 创建和spark的连接val wordCount: SparkConf = new SparkConf().setMaster("local[*].原创 2021-06-01 14:38:12 · 205 阅读 · 0 评论 -
Spark源码解读(一)
一、spark通过yarn启动的过程在spark通过yarn提交的时候,会去执行SparkSubmit的main方法。override def main(args: Array[String]): Unit = { val submit = new SparkSubmit() { self => override protected def parseArguments(args: Array[String]): SparkSubmitArguments =原创 2021-06-25 11:33:16 · 1371 阅读 · 1 评论 -
Spark学习笔记(三)
一、行动算子行动算子的执行,就会触发整个作业的执行, 会采集各个分区的数据到driver端的内存中。1. 常见的行动算子val data: RDD[Int] = context.makeRDD(List(1,2,3,4), 2)// 数据源的个数val count: Long = data.count()// 数据源的第一个val first = data.first()// 数据源的前多少个组成一个数组val take = data.take(4)// 输出结果re原创 2021-06-18 10:47:06 · 262 阅读 · 1 评论