如何使用Spark计算共同好友?

写在前面

你们好我是啊晨 ,一个大数据分享者兼一个努力成为大垃圾的小垃圾
本章介绍,使用spark计算共同好友,相信看这篇文章之前都有了解做过MapReduce的共同好友,文章后会有MapReduce的方法,大家自行比较一下哈。
如有其它需要请阅读我的其它大数据文章,谢谢
中间有什么问题请留言,请珍惜现在的时间:

在这里插入图片描述

描述

如网站有如下关系数据
friends.txt

A:B,C,D,F,E,O
B:A,C,E,K
C:F,A,D,I
D:A,E,F,L
E:B,C,D,M,L
F:A,B,C,D,E,O,M
G:A,C,D,E,F
H:A,C,D,E,O
I:A,O
J:B,O
K:A,C,D
L:D,E,F
M:E,F,G
O:A,H,I,J

数据说明:
A:B,C,D,F,E,O
每行数据以冒号为分隔符:
1.冒号左边是网站的一个用户A;
2.冒号右边是网站A的好友列表(各好友间以逗号为分隔符);

现在需要对网站的用户进行分析,找出那些用户两两之间有共同好友,以及他俩的共同好友都有那些人。
如:A、B两个用户拥有共同好友C和E;

(F-H,D,O,A,C,E)
(A-F,B,D,O,C,E)
(B-H,A,C,E)
(F-I,O,A)
(G-O,A)
(B-C,A)
(D-F,A,E)
(B-M,E)
(C-G,F,D,A)
....

计算

完整代码如下:

package spark

import org.apache.spark.rdd.RDD
import org.apache.spark.{
   SparkConf, SparkContext}



//共同好友聚合
object CommonFriend {
   
  def main(args: Array[String]): Unit = {
   
    //conf
    val conf = new SparkConf()
      .setMaster("local[*]")
      .setAppName(this.getClass.getName)
    //sc
    val sc = new SparkContext(conf)

    //读取数据
    val source: RDD[String] = sc.textFile("file:///E:\\work\\friends.txt")
    //处理数据
    val friendAndUser: RDD[(String, List[String])] = source.flatMap(line => {
   
      //按照:进行切分
      val infos: Array[String] = line.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值