生活中的大数据分析(二)

举报
星辰大海眺望远方 发表于 2019/02/02 18:32:46 2019/02/02
【摘要】 利用hql进行数据分析

1.利用hql进行数据分析挖掘

第一组:模版查询

把刚从手机里导出的数据还原至官网数据,保留日期、电话号码、城市、通话时间、手机类型、(呼出呼入)类型

insert overwrite directory "/user/15"

select cc.phone_data,cc.phone_number,dd.city,cc.call_duration,cc.type from

(select *,substr(phone_number,0,7) as m from call_records)cc

 left join (select *,substr(number_bigint,2,7) as n from number_field)dd

on cc.m=dd.n

where dd.city is not null;//不显示空号数据(因为原始数据是用java代码写的,所以回出现空号)

blob.png

blob.png

 

描述:还原到官网的数据,方便对官网数据进行操作,查询更多的数据

优点:通过表连接、嵌套查询进行数据清洗,清洗掉了无意义数据,保留非空号数据,输出了全部数据的全部信息。

 

2.查处手机号为18211360627的电话通话记录,并显示该号码在你通话记录中呼出类型中所占排名

insert overwrite directory "/user/15"

select phone_number,call_duration,type,ff.tt from

 (select phone_number,call_duration,type,rank() over(partition by type order by call_duration desc)tt

from call_records)ff where ff.phone_number=18211360627 and type ="呼出";

blob.png

blob.png



描述:共有9次通话记录,时间最长的一次是1557s,在通话时长中排名第223,可见该号码不是十分重要的联系人,数量和较长的通话时间都不是很多。

优点:通过表连接、嵌套查询进行通话记录分析,并分析出了机主平时的工作生活情况。

 

3.查出该通话记录中通话时长最长的前5名,显示其通话的日期、电话号码、城市、通话时间、手机类型、(呼出呼入)类型

insert overwrite directory "/user/15"

select cc.phone_data,cc.phone_number,dd.city,cc.call_duration,cc.type from

(select *,substr(phone_number,1,7) as m from call_records order by call_duration)cc

left join (select *,substr(number_bigint,2,7) as n from number_field)dd

 on cc.m=dd.n where dd.city is not null order by call_duration desc limit 5;

 blob.png

blob.png



描述:通话时间最长的前五名为134110273551596897683518918797716159689768391596897683918921363878,分别来自广东佛山、浙江宁波、上海、浙江宁波和江苏无锡。

说明机主主要的活动地为东南方向。

优点:通过表连接、嵌套查询进行通话记录分析,并分析出了机主平时的工作生活情况。

第二组:复杂查询

描述:利用少见的函数,多重的嵌套,和自己的数据做出独特的查询过程解决较为复杂的问题。

优点:完成了较难和少见的操作。

 

4.查出在通话录中使用最多运营商的的全部用户的电话号,城市,运营商。

insert overwrite directory "/user/15"

select lian.pn,lian.cy,lian.ct from (select ee.card_type as ct from(

select cc.phone_number,dd.city,cc.chishu,dd.card_type from

(select phone_number,count(*) as chishu,substr(phone_number,1,7) as m from call_records group by phone_number)cc

left join (select city,card_type,substr(number_bigint,2,7) as n from number_field)dd

on cc.m=dd.n where dd.card_type is not null order by cc.chishu desc limit 1)ee)gg,(select cc.phone_number as pn,dd.city as cy,dd.card_type as ct from (select  *,substr(phone_number,1,7) as m from call_records )cc

left join (select *,substr(number_bigint,2,7) as n from number_field)dd

 on cc.m=dd.n where dd.city is not null)lian where lian.ct=gg.ct;

                                             

blob.png

blob.png

 

描述:利用了N重嵌套查询,首先查询了通话录中使用最多的电话卡类型,再通过此电话类型的运营商,找到使用此运营商服务的所有人员。可以通过此记录,猜测出机主的主要活动地,计算运营商在该活动地的占用情况,即机主个人关系网中该运营商的占有量。

优点:利用的N重嵌套查询,理清楚嵌套关系,解决复杂问题,优化代码使之能成功运行。

 

5.将通话记录中按时间分,按电话分,分别按时间电话分,统计通话次数,输出到一个界面,方便存储一个文件。

insert overwrite directory "/user/15"

SELECT phone_data ,phone_number AS pn,

count(phone_number) AS ci

FROM call_records

GROUP BY phone_data, phone_number

UNION ALL

SELECT phone_data, NULL AS pn, count(phone_number) AS ci

FROM call_records

GROUP BY phone_data

UNION ALL

SELECT NULL AS phone_data, phone_number AS pn,

count(phone_number) AS ci

FROM call_records

GROUP BY phone_number

UNION ALL

SELECT NULL AS phone_data, NULL AS pn,

count(phone_number) AS ci

FROM call_records;

blob.png

blob.png


描述:将通话记录中按时间分,按电话分,分别按时间电话分,统计通话次数,输出到一个文件。

特点:利用UNION ALL将多个查询的数据连接到一起,若没有对应字段,则置空。

6.还原通话录中的各项信息,三表联立,优化查询

insert overwrite directory "/user/15"

select distinct gg.k,ff.city,gg.sf,gg.xb from (select sf,xb,cc.m as k from

(select *,substr(phone_number,1,7) as m from xb)cc

left join (select *,substr(phone_number,1,7) as n from sf)dd

on cc.m=dd.n)gg left join (select *,substr(number_bigint,2,7) as n from number_field)ff

on gg.k=ff.n where ff.city is not null;

blob.png

blob.png


描述:利用三表联立,还原通话录的黄页数据,

优点:其中俩个表是利用自己的代码运行出的数据,三表联立。



 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。