0
不久前,我問了一個關於使用多個鍵組織和構造RDD的問題。見PySpark Suggestion on how to organize RDDPySpark使用函數創建多重索引配對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雖然。
任何建議將不勝感激,謝謝!
感謝您的回覆!不幸的是,有很多具有相同ID的對象。一個問題 - 你的意思是「要做到這一點,我首先將RDD映射到(id,record),然後再做** filter **」? – archeezee
嗯,我們不能在加入之前做一個過濾器,因爲你的過濾條件取決於看時間戳。如果你有很多具有相同想法的對象,使得具有相同id的對象的交叉積太大,那麼我認爲下一個最合理的方法是做cogroup,然後用你的連接邏輯做一個平面圖。 – Holden
Ahhh我明白了,那麼你是在暗示我這樣cogroup:'rdd.map(lambda x:(x.id,(x.startTime(),x.endTime(),[x])))'? – archeezee