美文网首页首页投稿(暂停使用,暂停投稿)
利用Hive分析搜狗用户查询日志

利用Hive分析搜狗用户查询日志

作者: zhangxu0636 | 来源:发表于2016-08-18 08:02 被阅读353次

    1.下载日志

    http://www.sogou.com/labs/resource/q.php进行下载,我们下载的是mini版本


    图片上面的SougouQ.sample文件是我解压出来的mini版本的文件,但是当我们打开文件的时候发现里面是乱码怎么办呢?

    2.解决乱码问题

    乱码

    从上图明显发现文件内容呈现乱码,这个时候我们用下面的命令来转换文件的编码格式,产生不乱码的文件,来供我们查看。

    iconv -f gbk -t utf8 Sougou.sample > Sougou1.sample
    

    打开我们转换过后的文件,可以看到,搞定了。

    乱码解决

    3.转换文件的分隔符号

    当我用pandas的dataFrame尝试载入数据的时候,我发现pagerank和clickorder两个字段之间的分隔符号不是所谓'\t'制表符。这个时候我用python将它转换成以逗号进行分隔。

    #!/usr/bin/env python
    lines = open('/home/xuzhang/data/spark/SogouQ.sample').readlines()
    fp = open('/home/xuzhang/data/spark/Sougou.sample','w')
    for line in lines:
        fp.write(",".join(line.split()))
        fp.write("\n")
    
    处理好的文本

    4.创建hive表

    create table useractive(
    time string,
    userid string,
    keyword string,
    pagerank int,
    clickorder int,
    url string)
    row format delimited
    fields terminated by ','
    lines terminated by '\n';
    

    5.导入数据

    load data local inpath 'file:///soug.sample' overwrite into table useractive;
    

    6.进行sql查询

    • 查询点击最多的用户的前十个id
    select userid,count(*) as c from useractive group by userid order by c desc limit 10;
    
    • 查询url中包含baidu的数量
    select count(*) from useractive where url like '%baidu%';
    

    相关文章

      网友评论

        本文标题:利用Hive分析搜狗用户查询日志

        本文链接:https://www.haomeiwen.com/subject/khapsttx.html