PySpark - Sobreposição de tempo para objeto no RDD

Meu objetivo é agrupar objetos com base na sobreposição de tempo.

Cada objeto no meurdd contém umstart_time eend_time.

Provavelmente, estou lidando com isso de maneira ineficiente, mas o que estou planejando fazer é atribuir um ID de sobreposição a cada objeto, com base em se houver algum tempo sobreposto a qualquer um dos outros objetos. Eu tenho a lógica do tempo se sobrepor. Então, espero agrupar por issooverlap_id.

Então primeiro,

mapped_rdd = rdd.map(assign_overlap_id)
final_rdd = mapped_rdd.reduceByKey(combine_objects)

Agora isso vem à minha pergunta. Como posso escrever a função assign_overlap_id?

def assign_overlap_id(x):
  ...
  ...
  return (overlap_id, x)

questionAnswers(1)

yourAnswerToTheQuestion