6. 日志数据格式转换

1. 从Kafak 接收的数据如下

124.29.167.30 2019-03-23 21:58:01 “GET www/1 HTTP/1.0” https://search.yahoo.com/search?p=猎场 404

2. 定义要存入的日志格式

case class ClickLog (ip:String, time:String, categoryId:Int, statusCode:Int, referer:String)
  • ip : 访问者ip
  • time: 访问时间
  • categoryId: 访问的内容的类别
  • statusCode: 访问的状态
  • referer:访问的来源URL

3. 清洗访问日志

//124.29.167.30 	 2019-03-23 21:58:01 	 "GET www/1 HTTP/1.0"	 https://search.yahoo.com/search?p=猎场        404

    val cleanData = logs.map(line => {

      // 对日志数据进行分割
      val infos = line.split("\t")
      // 获取访问的URL
      val url = infos(2).split(" ")(2)
      
      // 获取访问的内容的类别
      var categoryId = 0
      if (url.startsWith("www/")) {
        categoryId = url.split("/")(1).toInt
      }
     // 返回值为ClickLog, 并按照categoryId不为0进行筛选
      ClickLog(infos(0), DateUtils.parseToMinute(infos(1)), categoryId, infos(4).trim().toInt, infos(3))
    }).filter(clickLog => clickLog.categoryId!=0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值