不久前,我问了一个关于用多个密钥组织和构造RDD的问题。见PySpark Suggestion on how to organize RDD
我当前的rdd中的每个对象都包含start_time
,end_time
,id
和position
。
我想按id
和time
对对象进行分组。如果两个或多个对象具有相同的id
或任何重叠时间,我会将它们组合在一起。
找到重叠的逻辑非常简单:
if x1.start_time > x2.start_time and x1.start_time < x2.end_time
if x2.start_time > x1.start_time and x2.start_time < x2.end_time
我只是不太了解如何使用这种逻辑创建配对的RDD。
任何建议都将不胜感激,谢谢!
答案 0 :(得分:1)
我认为最简单的方法是使用id连接然后过滤结果(如果没有太多具有相同的id)。为此,我首先将RDD映射到(id,record)然后再进行连接。