海量資料去重

2021-09-27 01:34:53 字數 707 閱讀 3143

法一:hash,通過雜湊對映構建原始資料與hash值之間的關係。若雜湊值相同則存在相同的資料,剔除即可。缺點:需要儲存該資料與對映關係。

法二:bitmap,位圖法,對於去重的問題,我們只需要標記該資料有沒有出現過,並不需要去儲存該資料。從這方面入手,便有了bitmap。 這裡我們假設待處理的資料是int型資料,佔32位。則數值區間為2^32,一共需要2^32位來標識所有的數值,那麼我們只需要含有2^29個byte的byte陣列來表示即可。使byte[0]表示最低的8位,依次類推,按順序排列。資料13則對應byte[1]中第5位設定為1,8+5=13,表示13出現過。

法三:布隆過濾器,bitmap雖然好用,但是對於很多實際情況下的大資料處理它還是遠遠不夠的,例如如果我們要進行64bit的long型資料去重,那我們需要含有2^61個byte的byte陣列來儲存,這顯然是不現實的。布隆過濾器正是通過提高空間利用率來進行標記的。  它採用k個不同的雜湊函式來進行計算,將數值雜湊到k個不同的位置,然後將這些位置置為1。上圖為例,k=3對於數值w他所對應的三個數值不全為1,所以判定其不在集合中。想到這裡大家應該意識到了乙個問題,如果乙個數值v進行雜湊計算後位置落在3,4,5(從0開始計算),那麼將判定該資料在當前集合中,這就產生了誤判。會將不在集合中的資料誤認為存在集合中,但是判定不在集合中的情況那將一定不在集合中。

海量資料去重

巧用mapreduce hdfs,海量資料去重的五大策略 hadoopsphere mapreducehdfshadoop儲存hbasededoop雲計算.摘要 隨著收集到資料體積的激增,去重無疑成為眾多大資料玩家面對的問題之一。重複資料刪除在減少儲存 降低網路頻寬方面有著顯著的優勢,並對擴充套件性...

使用SimHash進行海量文字去重

閱讀目錄 在之前的兩篇博文分別介紹了常用的hash方法 data structure algorithm hash那點事兒 以及區域性敏感hash演算法 algorithm 區域性敏感雜湊演算法 locality sensitive hashing 本文介紹的simhash是一種區域性敏感hash,...

使用SimHash進行海量文字去重

在之前的兩篇博文分別介紹了常用的hash方法 data structure algorithm hash那點事兒 以及區域性敏感hash演算法 algorithm 區域性敏感雜湊演算法 locality sensitive hashing 本文介紹的simhash是一種區域性敏感hash,它也是go...