0
我有一項將數據分組的工作。我只需要保留大分區(高於某個閾值)。如何提前知道hadoop map中每個reducer的記錄數reduce 根據大小忽略分區
有沒有一種方法呢?
一種解決方案是遍歷所有項目並將它們存儲在內存中,並且只有在它們達到特定大小時才刷新它們。 但是,此解決方案可能需要非常大量的內存。
我有一項將數據分組的工作。我只需要保留大分區(高於某個閾值)。如何提前知道hadoop map中每個reducer的記錄數reduce 根據大小忽略分區
有沒有一種方法呢?
一種解決方案是遍歷所有項目並將它們存儲在內存中,並且只有在它們達到特定大小時才刷新它們。 但是,此解決方案可能需要非常大量的內存。
我不認爲有一個普遍的直接解決方案(除了存儲,直到達到大小)。也許如果你提供更多的細節,這會給我們更多的啓發?
我想可能有一些相關的類可以通過作業配置來重寫(比如設置Partitioner,Comperator等) - 但我沒有找到相關的東西。 –
問題是你只有一個密鑰,如果信息不在密鑰中,那麼分區器是無奈的,我認爲。你可以隨時在你的密鑰中移動信息,但它不能確定,你可以猜測,如果一個值在地圖上出現的小於閾值,那麼不要發出它?問題在於你需要將所有內容都保存在內存中,這也可能會產生問題。另一個想法可能是運行一些樣本作業(在處理隨機地圖的地方)並估計樣本中的相關密鑰,這樣您只能發出那些可能相關的密鑰? – DDW