Spark合并DataFrame
已经从hive中读取了两个DataFrame,showRecords为展示记录,playRecords为播放记录;vid为视频标识(还有其他字段,此处无关,省略)
showRecords:
vid
1
1
2
2
3
3
4
playRecords:
vid
1
2
1
问题,如何统计每个vid的展示次数和播放次数,得到类似如下结果(结果count_play降序排列):
vid count_play count_show
1 2 2
2 1 2
3 0 2
4 0 1
我尝试了
val mergeRecords = showRecords.groupBy("vid").agg("vid" -> "count").join(playRecords.groupBy("vid").agg("vid" -> "count"), Seq("vid"), "full_outer")
但结果不符合预期,没有按count_play排序,并且由于是full_outer join导致count_play列出现null值。(也尝试了别的方法,但那个vid容易出现问题,因为两个表的主键vid是同名的。)请教如何用比较优雅的方法解决这个问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)