【Spark实训】-- Spark SQL结构化数据文件处理①

    题目:如图数据(user_artist_data.txt):该数据记录的用户播放某首歌的次数。数据包括三个字段,分别为userid(用户ID),artistid(艺术家ID),playcount(播放次数)。

使用Spark SQL相关知识对该数据进行分析,分析目标如下:

(1)统计非重复的用户个数

(2)统计用户听过的歌曲总数

(3)找出ID为“1000002”的用户最喜欢的10首歌(即播放次数最多的10首歌曲)


 目录

 具体实现步骤代码与解析

1.上传

​ 2.进入spark-shell

3. 加载user_artist_data.txt数据为DataFrame

4. 将user_artist_data注册为临时表

​ 5.统计非重复的用户个数

6. 统计用户听过的歌曲总数

 7. 找出 ID 为“1000002”的用户喜欢的 10 首歌曲(即播放次数多的 10 首歌曲)


具体实现步骤代码与解析

1.上传

hdfs dfs -put user_artist_data.txt  /user/root/

2.进入spark-shell

/myserver/spark301/bin/spark-shell

3. 加载user_artist_data.txt数据为DataFrame

case class UserArtist(userid:Int,artistid:Int,count:Int)

 val user_artist_data=sc.textFile("/user/root/user_artist_data.txt").map{x=>val y=x.split(" ");UserArtist(y(0).toInt,y(1).toInt,y(2).toInt)}.toDF()

4. 将user_artist_data注册为临时表

user_artist_data.registerTempTable("user_artist")

 5.统计非重复的用户个数

val sqlContext=new org.apache.spark.sql.SQLContext(sc)

sqlContext.sql("select count(distinct userid) from user_artist").show()

6. 统计用户听过的歌曲总数

sqlContext.sql("select userid,count(distinct artistid) from user_artist group by userid").show()

 7. 找出 ID 为“1000002”的用户喜欢的 10 首歌曲(即播放次数多的 10 首歌曲)

 sqlContext.sql("select artistid,count from user_artist where userid=1000002 order by count desc limit 10").show()

快速传送门:【Spark实训】-- Spark SQL结构化数据文件处理 ②_⚆Pearl的博客-CSDN博客

  • 2
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

⚆Pearl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值