实施例。我有(RoomId(键),RoomData对象(值))的RDD和(RoomId(键),StudentData对象(值))的RDD。
我希望最终得到一个对象(值)的RoomId(key)的RDD,该对象包含该房间数据中的房间和学生。
在mapreduce中我会:
但是火花:
我想过可能将两个RDD连接或附加在一起,然后通过密钥聚合新的RDD可以工作,如果我创建了一些uber会议室域对象,它将在聚合方法中创建并保存RoomData和给定RoomId的StudentData,但我认为有更好的方法。
我可以向RoomData对象添加一个addStudent方法,该方法将获取StudentData对象并将该数据添加到RoomData对象,实际上这就是我想要做的。但是,我应该如何/将它们以火花的方式与RDD相结合?
示例数据
1号房间 roomID - 100 主题 - 法语 老师 - SchoolLady女士 时间 - 中午12:00。
2号房间 roomID - 101 主题 - 西班牙语 老师 - LadyAtSchool女士 时间 - 凌晨1点
学生1 roomID - 101 名字 - 鲍勃史密斯
学生2 roomID - 100 名字 - 瑞安强人
学生3 roomID - 100 名字 - 简史密斯
在RDD学生房间的房间RDD学生,不能改变原始的RDD。
希望结果是包含以下内容的RDD:
1号房间 roomID - 100 主题 - 法语 老师 - SchoolLady女士 时间 - 中午12:00 学生 - 瑞安斯特朗,简史密斯
2号房间 roomID - 101 主题 - 西班牙语 老师 - LadyAtSchool女士 时间 - 凌晨1点 学生 - 鲍勃史密斯