Spark基础篇(六) - IDEA开发Spark代码

一、Spark项目开发流程回顾

二、Spark应用程序开发

一、Spark项目开发流程

  • 添加hadoop-client版本、添加cdh仓库、打包注意事项、上传服务器使用rz命令、spark-submit提交打的jar包进行运行、结果控制台输出&hdfs输出、多个文件输入、输入文件通配符匹配、输出结果排序

  • 开发WordCountApp使我们了解到了一个完整的项目开发流程;测试可以直接在spark-shell中进行测试。

二、Spark应用程序开发

2.1、Hive下求用户访问量TopN && Spark-shell实现&&IDEA下实现

需求:求用户访问量的TOP5:

需求分析:
1)、把end_user_id拿出来

  • 使用tab键进行分割 --> split("\t")
  • 拿到userid --> split(5)

2)、拿到用户对应的访问量,使用map赋上一个1,使用reduceByKey统计

  • 根据key进行统计,reduceByKey(+) --> (user_id,1)
  • 肯定是要有一个x/y反转的,反转过后使用sortByKey排序,再反转

3)、Top5

  • take(5)

需求拿到以后详细设计就是一个填空题目:

1、Hive下求用户访问量TopN:
1、打开Hive客户端,创建一张page_views表:
create table page_views(track_time string,url string,session_id string,referer string,ip string,end_user_id string,city_id string)row format delimited fields terminated by '\t';

2、把本地准备好的数据加载进去:
load data local inpath '/home/hadoop/data/page_views.dat' overwrite into table page_views;

3、编写SQL,求的用户访问量的Top5:
select end_user_id,count(*) as cend_user_id     c
NULL    60871
123626648       40
116191447       38
122764680       34
85252419        30 from page_views group by end_user_id order by c desc limit 5;

4、输出结果:

2、Spark-Core实现TopN:

hive (default)> select * from page_views limit 1;
OK
page_views.track_time   page_views.url  page_views.session_id   page_views.referer   page_views.ip   page_views.end_user_id  page_views.city_id
2013-05-19 13:00:00     http://www.taobao.com/17/?tracker_u=1624169&type=1  B58W48U4WKZCJ5D1T3Z9ZY88RU7QA7B1 http://hao.360.cn/      1.196.34.243    NULL-1
二、Spark-shell实现:
1、读入文件:
val textFile = sc.textFile("file:///home/hadoop/data/page_views.dat")

2、使用split为它进行分割顺带取出第五位,并使用map为它赋上1个1;使用take(5)取值验证:
val user_id = textFile.map(x 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值