日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

宝典9.2——海量数据的基本处理方法

發布時間:2024/10/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 宝典9.2——海量数据的基本处理方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、處理方法

表格

二、經典實例

1.top K問題

方案:分治+Trie樹/hash+小頂堆

將數據集按照hash方法分成多個小數據集;

使用Trie樹/hash統計每個小數據集中的query詞頻;

用小頂堆求出每個數據集中出現頻率最高的前K個數;

在所有top K中求出最終的top K

注:

  • 不能直接將數據劃分,應按照hash方法劃分。
    • 直接的話可能會將1000個apple分到多個數據集中,在那些數據集中它不算是最多的,不會出現在小top K中,也就不會出現在最終的top K中

有1億個浮點數怎么找出其中最大的10000個?

方法1、將數據全部排序,在排序后的集合中找。

方法2、局部淘汰法。容器中保存前10000個數,后面的數一一與容器中的最小數進行比較,若大則替換。

方法3、分治法。分成100份,找出每份中的最大的10000個,再在100*10000個中找最大的10000個。

方法4、hash法。若數據中由很多重復的數,先用hash法,去重,減少內存量,用分治法或者最小堆法進行查找。

方法5、最小堆法。讀入前10000個創建最小堆,后續數與最小堆對頂元素進行比較。

可能的應用場景:

1.單機+單核+足夠大內存:方法1

2.單機+多核+足夠大內存:方法3(劃分塊數可>核數,避免數據傾斜,一個處理完接著處理下一個)

3.單機+單核+受限內存:方法2

4.多機+受限內存:方法3(hash+Socket)

?

2.重復問題

通過位圖法實現

每個數字對應位圖中的一個bit位

?

3.排序問題

方法1:數據庫排序法。

? ? ? ? 讓數據庫索引排序操作后提取文件到內存

方法2:分治法。

? ? ? ? hash法將數據分段,編碼復雜,速度也慢

方法3:位圖法。

? ? ? ? 數組下標表示數值,用數組元素的值0表示沒有這個數,1表示有這個數

?

?

?

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的宝典9.2——海量数据的基本处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。