數倉day04 日誌預處理2

2022-08-17 17:42:18 字數 809 閱讀 5088

1.詳細描述idmap的整個計算方案

(1)使用sparksession物件讀取使用者不同類別的埋點日誌,解析並抽取出相應的標識id,使用union進行合併,得到裝有彙總標識id的rdd(ids)

(2)利用ids分別構造圖計算的vertex集合以及構造圖計算的邊集合(將出現次數小於2的邊過濾掉)

(3)將上一日的idmap對映字典解析成點、邊集合,並將之與當日的點邊集合進行合併

(4)利用合併後的點、邊集合,我們使用spark-graphx構造圖,並呼叫連通子圖演算法,得到初步結果

(5)將當日的idmp與前一日的idmp做對比,調整使用者統一標識(guid)

1)json解析,解析成功的返回logbean物件,解析失敗的返回null(這樣一來,json格式不對、不完整的髒資料就被識別出來了)

2)對上一步結果rdd[logbean]進行過濾(清掉json不完整的髒資料,清掉不符合規則的資料)

3)資料修正(調整guid,統一命名規範、度量單位規範等)

4)對資料進行字典整合(如利用地理位置對映字典快速將經緯度轉換成地區)

5)從整合後的結果中跳出無法解析的gps,寫入乙個待解析目錄,定期通過網路請求某地圖的api,得到位址後,將結果新增到本地的地理位置對映字典

6)輸出最終結果儲存為parquet(或orc)檔案

(1)快速獲取使用者的商圈資訊(大致的地理位置),方便後續的地域維度分析

(2)快速判斷日誌資料的所屬使用者,以便於後續進行使用者行為分析

(3)清除埋點日誌中的一些廢棄字段,格式不正確,以及不需要的資料,並且可以將資料處理成便於後續的資料分析的格式

day04 資料寬度

第4節 資料寬度 資料寬度 在上節課了解0和1的關係,同時計算機儲存資料,不是無限制可以儲存任意資料的,在我們現實中只儲存乙個數字的話,要麼把數字寫到本子上或記錄到腦子裡,那麼把它看成無限大的,但是在計算機中不是這樣的由於計算機受到硬體的約束,我們在儲存資料的時候它是有長度限制的。我們稱這個長度的限...

Day04 迴圈結構

如果在程式中我們需要重複的執行某條或某些指令,例如用程式控制機械人踢足球,如果機械人持球而且還沒有進入射門範圍,那麼我們就要一直發出讓機械人向球門方向奔跑的指令。當然你可能已經注意到了,剛才的描述中其實不僅僅有需要重複的動作,還有我們上乙個章節講到的分支結構。再舉乙個簡單的例子,比如在我們的程式中要...

遊戲開發Day04

1.建立球體物件,給球體新增剛體,材質,然後新增到預製體中。2.在相機的射擊指令碼中重寫重寫update方法 public transform newobject void update 3.銷毀子彈物件 在子彈的預製體中新增指令碼 void rotate 向右旋轉 if input.getkey ...