您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關HyperLogLog函數在Spark中的如何應用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
預聚合是數據分析領域的一個強大的技術手段,前提就是所要計算的指標是可重聚合的。聚合操作,顧名思義,是滿足結合律的,所以很容易引入再聚合操作,因為聚合操作可以再被進一步聚合。Counts 可以在通過 SUM 再聚合,最小值可以通過 MIN 再聚合,最大值也可以通過 MAX 再聚合。而 distinct counts 是特例,無法做再聚合,例如,不同網站訪問者的 distinct count 的總和并不等于所有網站訪問者的 distinct count 值,原因很簡單,同一個用戶可能訪問了不同的網站,直接求和就存在了重復統計的問題。
Distinct count 的不可再聚合的特性造成了很大的影響,計算 distinct count 必須要訪問到最細粒度的數據,更進一步來說,就是計算 distinct count 的查詢必須讀取每一行數據。
Map (每個 partition)
初始化 HLL 數據結構,稱作 HLL sketch
將每個輸入添加到 sketch 中
發送 sketch
Reduce
聚合所有 sketch 到一個 aggregate sketch 中
Finalize
計算 aggregate sketch 中的 distinct count 近似值
hll_init_agg
), reaggregation (通過
hll_merge
) 和 presentation (通過
hll_cardinality
)。
99+%的數據僅通過 Spark 進行管理,沒有重復
在預聚合階段,99+%的數據通過 Spark 處理
交互式查詢響應時間大幅縮短,處理的數據量也大幅較少
感謝各位的閱讀!關于“HyperLogLog函數在Spark中的如何應用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。