Spark | 三十二、spark工程化代码
Spark | 三十二、spark工程化代码
|
0 评论
[toc]一、为什么要工程化代码如果接到一个需求,就开发一遍如上代码,代码中环境设置、读取资源、代码逻辑等,全部耦合到一起,维护成本会上升!除了耦合度比较高之外,把共用的代码提取出来,减少代码重复量!工程化代码后,当发生问题的时候,也能迅速定位问题所在位!二、三层架构将Spark程序修改为三层架构:
 Spark | 三十一、案例实操-页面单跳转换率统计
Spark | 三十一、案例实操-页面单跳转换率统计
|
0 评论
[toc]一、需求说明1. 页面单跳转化率计算页面单跳转化率,什么是页面单跳转换率,比如一个用户在一次 Session 过程中访问的页面路径 3,5,7,9,10,21,那么页面 3 跳到页面 5 叫一次单跳,7-9 也叫一次单跳, 那么单跳转化率就是要统计页面点击的概率。比如:计算 3-5 的单跳
Spark | 三十、案例实操-Top10 活跃 Session点击统计
Spark | 三十、案例实操-Top10 活跃 Session点击统计
|
0 评论
[toc]一、Top10 热门品类中每个品类的 Top10 活跃 Session 统计在需求一的基础上,增加每个品类用户 session 的点击统计1. 需求梳理:热门TOP10品类中点击数据统计过滤后的点击数据每个品类下(分组)的活跃top10(排序,截取) session2. 编写代码packa
Spark | 二十九、案例实操-TOPN二
Spark | 二十九、案例实操-TOPN二
|
0 评论
[toc]续接上一篇,已经实现了一种方式但是流程太繁琐,特别是统计三个统计值用到了三个reducebykey,shuffle操作太多一、实现方式二方式二解决方式一中的cogroup可能存在的shuffle过程一次性统计每个品类点击的次数,下单的次数和支付的次数:(品类,(点击总数,下单总数,支付总数
 Spark | 二十八、案例实操-TOPN一
Spark | 二十八、案例实操-TOPN一
|
0 评论
[toc]一、准备数据我们已经学习了 Spark 的基础编程方式,接下来,我们看看在实际的工作中如何使用这些 API 实现具体的需求。这些需求是电商网站的真实需求,所以在实现功能前,咱们必须先将数据准备好。上面的数据图是从数据文件中截取的一部分内容,表示为电商网站的用户行为数据,主要包含用户的 4
 Spark | 二十七、spark之广播变量
Spark | 二十七、spark之广播变量
|
0 评论
[toc]一、实现原理广播变量用来高效分发较大的对象。向所有工作节点发送一个较大的只读值,以供一个或多个 Spark 操作使用。比如,如果你的应用需要向所有节点发送一个较大的只读查询表, 广播变量用起来都很顺手。在多个并行操作中使用同一个变量,但是 Spark 会为每个任务分别发送。根据原理,梳理下
 Spark | 二十六、spark之累加器
Spark | 二十六、spark之累加器
|
0 评论
[toc]一、什么是累加器?累加器用来把Executor 端变量信息聚合到Driver 端。在Driver 程序中定义的变量,在Executor 端的每个Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后, 传回Driver 端进行 merge。通过上述描述,可以了解到累加
Spark | 二十五、spark之RDD文件读取和保存
Spark | 二十五、spark之RDD文件读取和保存
|
0 评论
[toc]Spark 的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:text 文件、csv 文件、sequence 文件以及Object 文件;文件系统分为:本地文件系统、HDFS、HBASE 以及数据库。一、text文件 // 读取文本文件 val t
Spark | 二十四、spark之RDD自定义分区器
Spark | 二十四、spark之RDD自定义分区器
|
0 评论
[toc]一、默认分区器Spark 目前支持Hash 分区和 Range 分区,和用户自定义分区。Hash 分区为当前的默认分区。分区器直接决定了RDD 中分区的个数、RDD 中每条数据经过Shuffle 后进入哪个分区,进而决定了Reduce 的个数。只有Key-Value 类型的RDD 才有分区
Spark | 二十三、spark之RDD持久化
Spark | 二十三、spark之RDD持久化
|
0 评论
[toc]一、RDD Cache 缓存RDD 通过Cache 或者 Persist 方法将前面的计算结果缓存,默认情况下会把数据以缓存在 JVM 的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的 action 算子时,该RDD 将会被缓存在计算节点的内存中,并供后面重用。// cac