一、用户行为日志概述

1、为什么要记录用户访问行为日志

  • 网站页面的访问量
  • 网站的黏性
  • 推荐功能

    2、用户行为日志生成渠道

  • Nginx

  • Ajax

    3、用户行为日志内容

  1. 访问的系统属性: 操作系统、浏览器等等。
  2. 访问特征:点击的url、从哪个url跳转过来的(referer)、页面上的停留时间等。
  3. 访问信息:session_id、访问ip(访问城市)等。
    • 访问者IP地址
    • 访问者账号
    • 访问时间和区域
    • 访问者所使用的客户端
    • 模块 app ID
    • 跳转的链接地址

      4、用户行为日志分析的意义

  • 网站的眼睛
  • 网站的神经
  • 网站的大脑

    二、项目需求

    1、统计imooc主站最受欢迎的课程/手记的Top N访问次数

    2、按地市统计imooc主站最受欢迎的Top N课程

  • 根据IP地址提取出城市信息

  • 窗口函数再Spark SQL中的使用

    3、按流量统计imooc主站最受欢迎的Top N课程

    三、功能实现

    1、imooc网主站日志介绍

  • 访问时间

  • 访问URL
  • 访问IP地址
  • 访问过程耗费流量

    2、第一次数据清洗

  1. 使用map对数据进行分割,抽取出我们所需要的制定列的数据
  2. 对时间格式进行转换,转换成常用时间格式

    使用的SimpleDateFormat是线程不安全,解析出的日期会存在错误, 因此采用FastDateFormat的方法进行日期的解析,该方法的线程是安全的。

3、第二次数据清洗

  1. 使用Spark SQL解析访问日志
  2. 解析出课程编号、类型
  3. 根据IP解析出城市信息
  4. 使用Spark SQL将访问时间按天进行分区输出

    4、按照需求完成统计信息并将统计结果入库

  5. 使用DataFrame API完成统计分析

  6. 使用SQL API完成统计分析
  7. 将统计结果写入到MySQL数据库