我有一個以地圖爲元素的RDD。當然,我不能使用RDD.get。因此,截至目前,我這樣做,以獲取值從這個映射鍵:從scala獲取地圖rdd中的密鑰值
val x = RDD.collect().flatten.toMap
然後
x.get(key)
得到的關鍵價值。現在,有一個非常大的rdd,它在rdd上應用.collect()時輸出錯誤java.lang.OutOfMemoryError: GC overhead limit exceeded
。如何在不應用rdd上的.collect()的情況下執行此操作?
你能共享一個可重複包括預期產出的例子? – mtoto
跳到我身上的一件事是,你打電話收集(一個「行動」)太早。您需要將RDD轉換爲(希望的)更小的RDD - 基本上只需要那些具有所需鍵的元素 - 然後在RDD中只有少數元素的最後時刻調用collect。 – Phasmid