大資料資料處理分析

2021-08-07 22:54:36 字數 944 閱讀 5464

案例1 :假設乙個檔案中有9億條不重複的9位整數,現在要求對這個檔案進行排序。

方法:bit 位操作

首先32位機的定址能力是 2的32次方, 即4g.定址能力最大是這樣了.

乙個最大的9位整數為999999999

這9億條資料是不重複的

宣告乙個bit陣列,長度為10億

一共需要10億 / 8 / 1024 /1024 =120m

把記憶體中的資料全部初始化為0

讀取檔案中的資料,並將資料放入記憶體。比如讀到乙個資料為341245909這個資料,那就先在記憶體中找到341245909這個bit,並將bit值置為1

遍歷整個bit陣列,將bit為1的陣列下標存入檔案

然後再遍歷一次,找出不為零的就可以了.

注意:如果是有重複的數字,

需要考慮重複的情況

如果普遍多於2個,那麼就要設定包含2個bit的陣列

或者使用bitmap型別.

例如 5 :0000 0000 0000 0000 0000 0000 0000 0101

現在引入bitmap,所謂bitmap就是用乙個bit來表示乙個資料。平時32位儲存乙個資料,我們可以換一種想法,用乙個位元組32位來儲存0-31這32個資料,例如我們對2,1,5,12這四個資料進行由小到大的排序,首先把32位初始化為0,我們可以把這4個資料儲存為0000 0000 0000 0000 0001 0000 0010 0110

我們就把32位中的分別把 2  1  5  12位置為1,然後從第0位開始遍歷,看相應位是否為1,為1就進行輸出,就完成了資料從小到大的排序。

再返回原題應用bitmap就可以把16gb的儲存空間縮小為16gb/32 = 512m,就可以大大減少讀取檔案的工作。直接讀一次檔案存入記憶體,然後遍歷輸出就完成了排序。

優點:既大量節省了空間,又把時間複雜度降低到o(n)。

不足:如果資料過於稀疏就會有大量無用遍歷,浪費時間。

大資料處理題型分析

解題思路 有100億個整數,乙個整數4位元組,共所佔空間 100億 4位元組 10g 4 40g 所有整數的範圍為0到42億9千萬 需要找到只出現一次的整數,那麼我們就可以直接斷定乙個數出現的狀態就有三個 沒有出現,出現1次,出現1次以上。三種狀態用兩個二進位制位足以表示 使用點陣圖的變形就可完成這...

大資料處理

大資料處理的流程主要包括以下四個環節 採集 匯入 預處理 統計 分析 挖掘,下面針對這四環節進行簡單闡述。大資料處理之一 採集 在大資料的採集過程中,其主要特點和挑戰是併發數高,因為同時有可能會有成千上萬的使用者來進行訪問和操作,比如火車票售票 和 它們併發的訪問量在峰值時達到上百萬,所以需要在採集...

大資料處理隨筆

1.mssql當資料庫資料超過1000萬的時候超時是正常的,所以當表資料到1000萬時候注意delete 2.今天遇到資料庫時間格式2014021000 當然是int型別哦 3.聯合索引使用 開始時間與結束時間這樣一起查詢的要建成索引 4.訂閱資料庫,只可以查詢操作,這樣的話可以在這個表上面建立索引...