随笔分类 - sparkcore
摘要:mapreduce依赖 <properties> <hadoop.version>2.8.5</hadoop.version> </properties> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifa
阅读全文
摘要:题目: /** * 统计每个省份的用户访问量,最终要求将不同省份用户访问量存放到不同的分区中 分区存放规则如下 * 省份是以包含 山 0 * 如果省份包含 海 1 * 其他省份 2 */ 代码: package sparkcorerddexample import org.apache.spark.
阅读全文
摘要:题目描述: /** * 清洗完成的数据中包含一个用户的响应状态码,获取每一种状态码对应的访问量 * 1、读取清洗完成的数据成为RDD[String] * 2、可以把上一步得到的RDD通过map算子转换成一个键值对类型的RDD,以状态码为key 以不同用户的访问日志为value的数据 * 3、键值对类
阅读全文
摘要:
阅读全文
摘要:1. 要求 1. 过去用户的行为日志数据中响应状态码大于等于400的数据 2. 并且需要查看一下合法的数据有多少条,不合法的数据有多少条 3. 将处理完成的结果保存到HDFS分布式文件存储系统上 2. 代码:使用自带累加器 /* 180.153.11.130 - - 2018-03-18 11:42
阅读全文
摘要:1. 创建RDD数据集 1. 从现有的Scala集合创建RDD数据集 parallelize(Seq, numSlices): 定义: Seq:Array或者List numSlices:代表创建的RDD的分区数,如果没传递,有一个默认值,默认分区就是spark.default.parallelis
阅读全文
摘要:广播变量有个要求,广播变量是只读的,分区中只能获取广播变量的值,无法更改广播变量的值 优势:节省了磁盘io,数据量越大,效果越明显 使用:直接通过广播变量的.value函数获取广播变量的值 案例 package videovar import org.apache.spark.rdd.RDD imp
阅读全文
摘要:【注意】: 如果要使用Spark自带的Long类型的累加器,直接sc.longAccumulator()获取使用即可,底层累加器会自动注册 但是如果我们想要使用自定义累加器,必须通过SparkContext的register(累加器对象名)显示注册才能使用,否则累加器不生效 累加器对于分区,只写不读
阅读全文
摘要:HighWordCountAccumulator.scala package accumulator import org.apache.spark.util.AccumulatorV2 import scala.collection.mutable /* 继承AccumulatorV2类, 传递两
阅读全文
摘要:1.累加器 object AccCode { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[2]").setAppName("sum") val sc = new Sp
阅读全文
摘要:分区器只有键值对类型的RDD才可以使用分区器去定义分区规则,非键值对类型RDD也有分区,但是数值类型的rdd是均匀分区的,不可把控的 1. HashPartitioner 定义:HashPartitioner 按照key值的hashcode的不同 分到不同分区里面 弊端:可能会造成数据倾斜问题(每一
阅读全文
摘要:1. countByKey 定义:countByKey():scala.collection.Map(K,Long)按照key值计算每一个key出现的总次数 案例: val rdd:RDD[(String,Int)] = sc.makeRDD(Array(("zs",60),("zs",70),("
阅读全文
摘要:定义:combineByKey(createCombiner,mergePart,mergerbine ) combineByKey需要传递三个参数(函数) 1、createCombiner函数 将相同key值的某一个value数据进行一个函数操作,得到一个新的value数据 零值(新的value数
阅读全文
摘要:1. sortByKey 定义:sortByKey([ascending], [numPartitions]) 解释:按照key值对RDD进行排序,返回一个排序完成RDD ascending: boolean(true:升序 false:降序) numPartitions: 分区个数 案例: def
阅读全文
摘要:1. groupByKey 定义:groupByKey([numPartitions])、 解释:只对键值对类型RDD生效,同时返回的是一个新的RDD[(key,Iterator[Value])] 案例: def groupByKeyOper(sc: SparkContext): Unit = {
阅读全文
摘要:1.行动算子介绍 返回的不是一个RDD,而是一个数据值或者集合或者是没有返回 没有行动算子算法,那么无法实现转换算子的执行 2.reduce(fun):T 聚合算子 定义:fun函数类型如下 (T,T)=>T T是RDD的数据集数据的类型 将原先RDD数据集中聚合起来算一个总的结果 sum/coun
阅读全文
摘要:1.map算子 定义: map(fun)函数 解释: 将RDD的每一个元素通过fun函数计算得到一个新的结果,新的结果我们会组合成为一个新的RDD 特别注意:一对一场景下,RDD的每一条数据对应新的RDD的中一条数据 案例: def mapOper(sc: SparkContext): Unit =
阅读全文
摘要:1.启动spark命令 1. start-dfs.sh 2. start-yarn.sh 3. start-spark-all.sh 4. start-history-server.sh 5. spark-shell --master spark://node1:7077
阅读全文
摘要:1. 本地 spark-submit --class org.apache.spark.examples.SparkPi --master local[2] /opt/app/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar 100 2.
阅读全文
摘要:spark关联hadoop的环境 [root@node1 conf]# pwd /opt/app/spark-2.3.1/conf [root@node1 conf]# vi spark-env.sh HADOOP_CONF_DIR=/opt/app/hadoop-2.8.5/etc/hadoop
阅读全文