PySpark 使用函数创建多索引配对 RDD

PySpark Create Multi Indexed Paired RDD with function

不久前我问了一个关于组织和构造具有多个键的 RDD 的问题。参见

我当前 rdd 中的每个对象都包含一个 start_timeend_timeidposition.

我想按 idtime 对对象进行分组。如果两个或多个对象具有相同的 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。

任何建议将不胜感激,谢谢!

我认为最简单的方法是加入 id,然后过滤结果(如果没有太多相同的 id)。为此,我首先将 RDD 映射到 (id, record),然后进行连接。