随笔分类 -  9、Spark-Core

摘要:Application:spark应用程序,就是用户基于spark api开发的程序,一定是通过一个有main方法的类执行的,比如java开发spark,就是在eclipse中,建立的一个工程Application Jar:这个就是把写好的spark工程,打包成一个jar包,其中包括了所有的第三方jar依赖包,比如java中,就用maven+assembly插件打包最方便Driver Progra... 阅读全文
posted @ 2017-08-02 23:06 江正军 阅读(691) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-08-01 11:06 江正军 阅读(436) 评论(0) 推荐(0) 编辑
摘要:注:新版本接口中Iterable已换成Iterator 阅读全文
posted @ 2017-08-01 09:00 江正军 阅读(481) 评论(0) 推荐(0) 编辑
摘要:文本中有如下内容:1 52 43 61 32 1现要求对文本行进行排序,第一列相同时,比较第二列Java版:package sparkcore.java;import java.io.Serializable;import scala.math.Ordered;/** * 自定义的二次排序key */public class SecondarySortKey implements Orde... 阅读全文
posted @ 2017-07-31 19:51 江正军 阅读(852) 评论(0) 推荐(0) 编辑
摘要:1、Java版本: 1.1、取前3package sparkcore.java;import java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apac... 阅读全文
posted @ 2017-07-31 18:03 江正军 阅读(622) 评论(0) 推荐(0) 编辑
摘要:package sparkcore.java;import java.util.Arrays;import java.util.Iterator;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import ... 阅读全文
posted @ 2017-07-31 12:46 江正军 阅读(701) 评论(0) 推荐(0) 编辑
摘要:共享变量工作原理Spark一个非常重要的特性就是共享变量。 默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。 Spark为此提供了两种共享变量,一种是Broadcast Variable(广播变量),另一种是Accumulator(累加变量)。... 阅读全文
posted @ 2017-07-31 12:46 江正军 阅读(1844) 评论(0) 推荐(0) 编辑
摘要:为了避免多次计算同一个RDD(如上面的同一result RDD就调用了两次Action操作),可以让Spark对数据进行持久化。当我们让Spark持久化存储一个RDD时,计算出RDD的节点会分别保存它们所求出的分区数据。如果一个有持久化数据的节点发生故障,Spark会在需要用到缓存的数据时重算丢失的数据分区。Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时... 阅读全文
posted @ 2017-07-31 12:44 江正军 阅读(957) 评论(0) 推荐(0) 编辑
摘要:1、reduce:2、collect:3、count:4、take:5、saveAsTextFile:6、countByKey:7、foreach:package sparkcore.java;import java.util.Arrays;import java.util.List;import java.util.Map;import org.apache.spark.SparkConf;im... 阅读全文
posted @ 2017-07-31 12:43 江正军 阅读(456) 评论(0) 推荐(0) 编辑
摘要:常用Transformation 注:某些函数只有PairRDD只有,而普通的RDD则没有,比如gropuByKey、reduceByKey、sortByKey、join、cogroup等函数要根据Key进行分组或直接操作 RDD基本转换: RDD[U] map(f: T => U) T:原RDD中元素类型 U:新RDD中元素类型 ... 阅读全文
posted @ 2017-07-31 12:42 江正军 阅读(1716) 评论(0) 推荐(0) 编辑
摘要:1、map:将集合中每个元素乘以22、filter:过滤出集合中的偶数3、flatMap:将行拆分为单词4、groupByKey:将每个班级的成绩进行分组5、reduceByKey:统计每个班级的总分6、sortByKey、sortBy:将学生分数进行排序7、join:打印每个学生的成绩8、cogroup:打印每个学生的成绩 package sparkcore.java;import java.u... 阅读全文
posted @ 2017-07-28 17:59 江正军 阅读(1222) 评论(0) 推荐(0) 编辑
摘要:1、transformation和action介绍Spark支持两种RDD操作:transformation和action。transformation操作会针对已有的RDD创建一个新的RDD;而action则主要是对RDD进行最后的操作,比如遍历、reduce、保存到文件等,并可以返回结果给Driver程序。 例如,map就是一种transformation操作,它用于将已有RDD的每个元素传入... 阅读全文
posted @ 2017-07-26 20:26 江正军 阅读(920) 评论(0) 推荐(0) 编辑
摘要:附件列表 阅读全文
posted @ 2017-07-26 18:34 江正军 阅读(423) 评论(0) 推荐(0) 编辑
摘要:Spark Core提供了三种创建RDD的方式,包括:使用程序中的集合创建RDD;使用本地文件创建RDD;使用HDFS文件创建RDD。1、并行化集合如果要通过并行化集合来创建RDD,需要针对程序中的集合,调用SparkContext的parallelize()方法。Spark会将集合中的数据拷贝到集群上去,形成一个分布式的数据集合,也就是一个RDD。相当于是,集合中的部分数据会到一个节点上,而另一... 阅读全文
posted @ 2017-07-26 18:34 江正军 阅读(2688) 评论(0) 推荐(0) 编辑
摘要:1、开发环境1、eclipse-jee-neon-32、scala-ide:http://download.scala-ide.org/sdk/lithium/e46/scala212/stable/site3、下载Maven,修改D:\apache-maven-3.5.0\conf\settings.xml配置文件:本地库位置: D:/apache-maven-3.5.0/localRep... 阅读全文
posted @ 2017-07-18 22:37 江正军 阅读(647) 评论(0) 推荐(0) 编辑