Spark 日志分析项目实践总结
1. 概述
1). 用户日志:用户每次访问网站所有的行为(点击、浏览、访问、搜索)我们可以通过对日志的分析获取网站页面的访问量、网站的黏性、用户行为日志、推荐
2). 用户行为日志内容
3). 日志获取方式
2.离线数据处理架构
3. 数据清洗
4. spark sql 业务逻辑处理
1).使用 spark sql语句处理业务逻辑,关键代码如下
//读取数据
val df = spark.read.format("parquet").load("file:///D:\\test_data\\log\\cleanLog\\part-*")
//创建表
df.createOrReplaceTempView("tb_course")
//用sql处理业务逻辑
val result = spark.sql("select day ,cmsId, count(1) as times from tb_course " +
"where day = " + day + " and cmsType='video' " +
"group by cmsId,day order by times desc limit 10 ")
2).使用dataframe API处理业务逻辑,关键代码如下
import spark.implicits._
val videoAccessTopNDF = df.filter($"day" === day && $"cmsType" === "video")
.groupBy("day","cmsId").agg(count("cmsId").as("times")).orderBy($"times".desc)
5. 处理结果保存到mysql中
见:https://blog.youkuaiyun.com/wtzhm/article/details/84784227
6. 项目需求、源码、日志文件
- 项目需求:
(1)最受欢迎的TopN课程
(2)按照地市进行统计TopN课程
(3)按照流量进行统计TopN课程 - 项目日志文件地址:https://download.youkuaiyun.com/download/wtzhm/10814053
- 项目源码地址:https://github.com/zhmcode/deallog
- 注意项目中pom文件中引入了一个本地jar包(用于查询将ip地址解析为城市区域),源代码地址:https://github.com/wzhe06/ipdatabase,需要将项目下载--->编译打包—>引入到自己的项目中