在网上搜寻的一个项目,写的比较好,拿来学习了
搜索引擎搜索 “Spark大型电商项目实战简介” 就能搜到。很详细的一个项目,在此谢过
简单的画了一个图,当做是记录一下。
该项目源码中是用Java开发的,分析计算多用的是spark core,我在实践这个项目的时候,spark 2.x 已有了,性能应该比1 有提升,所以关于spark部分我基本用的都是Spark Sql,并且用scala写的。只是参考了业务逻辑,技术实现部分还是自己写的自己熟悉一些,方便后面优化等。
https://github.com/maozicb/spark_e_commerce
我自己的代码放到这里了,里面核心代码都是自己写的。
项目中的特色
数据库访问层使用DAO 模型
使用spark的累加器和广播变量功能
scala 编写核心代码
程序代码优化(持久化rdd,使用filter避免shuffle )
项目中遇到的难点,并解决
自定义Accumulator的实现
row_number() over() 窗口函数使用
避免shuffle操作(array,list,set contain 方法比较)