package sogolog

 import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext} /**
* 统计每小时搜索次数
*/
/*
搜狗日志示例
访问时间(时:分:秒) 用户ID [查询词] 该URL在返回结果中的排名 用户点击的顺序号 用户点击的URL
00:00:00 2982199073774412 [360安全卫士] 8 3 download.it.com.cn/softweb/software/firewall/antivirus/20067/17938.html
00:00:00 07594220010824798 [哄抢救灾物资] 1 1 news.21cn.com/social/daqian/2008/05/29/4777194_1.shtml
00:00:00 5228056822071097 [75810部队] 14 5 www.greatoo.com/greatoo_cn/list.asp?link_id=276&title=%BE%DE%C2%D6%D0%C2%CE%C5
00:00:00 6140463203615646 [绳艺] 62 36 www.jd-cd.com/jd_opus/xx/200607/706.html
*/
object CountByHours {
def main(args: Array[String]): Unit = { //1、启动spark上下文、读取文件
val conf = new SparkConf().setAppName("sougo count by hours").setMaster("local")
val sc = new SparkContext(conf)
var orgRdd = sc.textFile("C:\\Users\\KING\\Desktop\\SogouQ.reduced\\SogouQ.reduced")
println("总行数:"+orgRdd.count()) //2、map操作,遍历处理每一行数据
var map:RDD[(String,Integer)] = orgRdd.map(line=>{
//拿到小时
var h:String = line.substring(0,2)
(h,1)
}) //3、reduce操作,将上面的 map结果按KEY进行合并、叠加
var reduce:RDD[(String,Integer)] = map.reduceByKey((x,y)=>{
x+y
}) //打印出按小时排序后的统计结果
reduce.sortByKey().collect().map(println)
}
}

运行结果:

搜狗日志下载地址:http://www.sogou.com/labs/resource/q.php

使用Spark进行搜狗日志分析实例——统计每个小时的搜索量的更多相关文章

  1. 使用Spark进行搜狗日志分析实例——map join的使用

    map join相对reduce join来说,可以减少在shuff阶段的网络传输,从而提高效率,所以大表与小表关联时,尽量将小表数据先用广播变量导入内存,后面各个executor都可以直接使用 pa ...

  2. 使用Spark进行搜狗日志分析实例——列出搜索不同关键词超过10个的用户及其搜索的关键词

    package sogolog import org.apache.hadoop.io.{LongWritable, Text} import org.apache.hadoop.mapred.Tex ...

  3. ELK 日志分析实例

    ELK 日志分析实例一.ELK-web日志分析二.ELK-MySQL 慢查询日志分析三.ELK-SSH登陆日志分析四.ELK-vsftpd 日志分析 一.ELK-web日志分析 通过logstash ...

  4. 基于Spark的网站日志分析

    本文只展示核心代码,完整代码见文末链接. Web Log Analysis 提取需要的log信息,包括time, traffic, ip, web address 进一步解析第一步获得的log信息,如 ...

  5. Spark之搜狗日志查询实战

    1.下载搜狗日志文件: 地址:http://www.sogou.com/labs/resource/chkreg.php 2.利用WinSCP等工具将文件上传至集群. 3.创建文件夹,存放数据: mk ...

  6. 日志分析-mime统计

    提取日志中未落入标准字段的mime,分adx,adtype 统计mime的数量和包含js的数量占比 require 'date' require 'net/http' require 'uri' re ...

  7. spark提交异常日志分析

    java.lang.NoSuchMethodError: org.apache.spark.sql.SQLContext.sql(Ljava/lang/String;)Lorg/apache/spar ...

  8. nginx日志分析及其统计PV、UV、IP

    一.nginx日志结构 nginx中access.log 的日志结构: $remote_addr 客户端地址 211.28.65.253 $remote_user 客户端用户名称 -- $time_l ...

  9. 日志分析_统计每日各时段的的PV,UV

    第一步: 需求分析 需要哪些字段(时间:每一天,各个时段,id,url,guid,tracTime) 需要分区为天/时 PV(统计记录数) UV(guid去重) 第二步: 实施步骤 建Hive表,表列 ...

随机推荐

  1. 编码原则 之 Once and Only Once

    原文 The Once and Only Once principle can be thought of as a subset of the Don’t Repeat Yourself princ ...

  2. Lintcode225-Find Node in Linked List-Naive

    225. Find Node in Linked List Find a node with given value in a linked list. Return null if not exis ...

  3. 渐变UI

    1.h #import <UIKit/UIKit.h> @interface UIView (Gradient) /* The array of CGColorRef objects de ...

  4. newnewFoogetName高级面试题

  5. arcgis raster clip and mask difference 栅格 提取 clip 和 mask 方法的区别

    建议使用 数据管理工具下的此工具进行操作: 在选择参数时,注意做如下选择,可以保证栅格不会轻微错开: 也就是勾选第一个,而不勾选第二个 看看效果,使用mask得到的裁剪结果,注意有错开现象: 使用cl ...

  6. 自动化定位——通过XPath定位元素

    XPath是一种XML文档中定位元素的语言.该定位方式也是比较常用的定位方式 1通过属性定位元素 find_element_by_xpath("//标签名[@属性='属性值']") ...

  7. Git - 生成 ssh key for Mac

    终端: cd ~/ .ssh 生成 SSH KEY ssh-keygen -t rsa -C 你的油箱 前往以下目录找到生成好的 SSH KEY /Users/wzz/.ssh/id_rsa.pub

  8. Rhel6.6---执行命令df -h卡住不动

    问题描述 nfs服务宕掉后,df -h卡住不动,使用xftp也无法打开文档路径 -bash-4.1# mount /dev/mapper/vg_root-LogVol00 on / type ext4 ...

  9. 2-Reverse Integer(简单)

    Description: Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Outp ...

  10. python+selenium+xpath 爬取天眼查工商基本信息

    # -*- coding:utf-8 -*-# author: kevin# CreateTime: 2018/8/16# software-version: python 3.7 import ti ...