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%';
网友评论