首页投稿(暂停使用,暂停投稿)

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

2016-08-18  本文已影响353人  zhangxu0636

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查询

select userid,count(*) as c from useractive group by userid order by c desc limit 10;
select count(*) from useractive where url like '%baidu%';
上一篇 下一篇

猜你喜欢

热点阅读