
Spark
spark
_a_0_
Who am, Where am.
展开
-
Spark程序提交过程初探
背景:最近想去系统吃的看一看sparkCore的源码,一回想发现自己有一点懵 O(∩_∩)O哈哈~ 现在重新找回一下记忆一句很经典的话“No picture you say a JB” 那我们贯彻这个宗旨,先上一张图,看图说话O(∩_∩)O哈哈~有问题请直接拍脸上,让我清醒的认识到错误接下来就是一顿~~:这里分析的是standalone模式,我们编写好了spark程序...原创 2019-12-12 20:15:02 · 202 阅读 · 0 评论 -
Spark Core求topN案例
案例需求:1、对文本文件内的数字,取最大的前3个。2、对每个班级内的学生成绩,取出前3名。(分组取topN)实例:Java版本:topN和分组TopNimport java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;impor...原创 2018-12-21 17:45:40 · 538 阅读 · 0 评论 -
Spark Core的二次排序案例
案例需求:1、按照文件中的第一列排序。2、如果第一列相同,则按照第二列排序。实例:Java版本:import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache....原创 2018-12-16 12:43:17 · 471 阅读 · 0 评论 -
Spark基于排序机制的wordcount程序
案例需求:1、对文本文件内的每个单词都统计出其出现的次数。2、按照每个单词出现次数的数量,降序排序。代码:Java版本:import java.util.Arrays;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark....原创 2018-12-15 18:45:32 · 368 阅读 · 0 评论 -
RDD创建
进行Spark核心编程时,首先要做的第一件事,就是创建一个初始的RDD。该RDD中,通常就代表和包含了Spark应用程序的输入源数据。然后在创建了初始的RDD之后,才可以通过Spark Core提供的transformation算子,对该RDD进行转换,来获取其他的RDD。Spark Core提供了三种创建RDD的方式,包括:使用程序中的集合创建RDD;使用本地文件创建RDD;使用...原创 2018-12-15 18:12:08 · 281 阅读 · 1 评论 -
操作RDD
transformation和action介绍Spark支持两种RDD操作:transformation和action。transformation操作会针对已有的RDD创建一个新的RDD;而action则主要是对RDD进行最后的操作,比如遍历、reduce、保存到文件等,并可以返回结果给Driver程序。例如,map就是一种transformation操作,它用于将已有RDD的每个元素传...原创 2018-12-15 18:12:25 · 328 阅读 · 0 评论 -
transformation操作开发实战
1、map:将集合中每个元素乘以22、filter:过滤出集合中的偶数3、flatMap:将行拆分为单词4、groupByKey:将每个班级的成绩进行分组5、reduceByKey:统计每个班级的总分6、sortByKey:将学生分数进行排序7、join:打印每个学生的成绩8、cogroup:打印每个学生的成绩scala版本:import org.apache.spark....原创 2018-12-15 18:12:41 · 359 阅读 · 0 评论 -
action操作开发实战
1、reduce:2、collect:3、count:4、take:5、saveAsTextFile:6、countByKey:7、foreach:Java版本:import java.util.Arrays;import java.util.List;import java.util.Map;import org.apache.spark.SparkConf;im...原创 2018-12-15 18:12:59 · 389 阅读 · 1 评论 -
RDD持久化
RDD持久化原理:Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内存中,并且在之后对该RDD的反复使用中,直接使用内存缓存的partition。这样的话,对于针对一个RDD反复执行多个操作的场景,就只要对RDD计算一次即可,后面直接使用该RDD,而不需要反复计算多次该RDD。巧妙使用RD...原创 2018-12-15 18:27:45 · 871 阅读 · 0 评论 -
共享变量(Broadcast Variable和Accumulator)
共享变量工作原理:Spark一个非常重要的特性就是共享变量。默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。Spark为此提供了两种共享变量,一种是Broadcast Variable(广播变量),另一种是Accumulator(累加...原创 2018-12-15 18:39:55 · 609 阅读 · 0 评论 -
spark的基本工作原理与RDD
spark的核心编程:RDD:1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hiv...原创 2018-12-15 18:10:55 · 781 阅读 · 0 评论