Spark詳解(05-1) - SparkCore實戰案例


Spark詳解(05-1) - SparkCore實戰案例

數據准備

1)數據格式

本項目的數據是采集電商網站的用戶行為數據,主要包含用戶的4種行為:搜索、點擊、下單和支付。

1)數據采用_分割字段

2)每一行表示用戶的一個行為,所以每一行只能是四種行為中的一種。

3)如果點擊的品類id和產品id-1表示這次不是點擊

4)針對下單行為,一次可以下單多個產品,所以品類id和產品id都是多個,id之間使用逗號分割。

如果本次不是下單行為,則他們相關數據用null來表示。

5)支付行為和下單行為格式類似

2)數據詳細字段說明

編號

字段名稱

字段類型

字段含義

1

date

String

用戶點擊行為的日期

2

user_id

Long

用戶的ID

3

session_id

String

SessionID

4

page_id

Long

某個頁面的ID

5

action_time

String

動作的時間點

6

search_keyword

String

用戶搜索的關鍵詞

7

click_category_id

Long

點擊某一個商品品類ID

8

click_product_id

Long

某一個商品的ID

9

order_category_ids

String

一次訂單中所有品類ID集合

10

order_product_ids

String

次訂單中所有商品的ID集合

11

pay_category_ids

String

一次支付中所有品類ID集合

12

pay_product_ids

String

次支付中所有商品的ID集合

13

city_id

Long

城市 id

需求1Top10熱門品類

需求說明:品類是指產品的分類,大型電商網站品類分多級,本項目中品類只有一級,不同的公司可能對熱門的定義不一樣。按照每個品類的點擊、下單、支付的量來統計熱門品類。

            點擊數 下單數 支付數

衣服        點擊數 下單數 支付數

電腦        點擊數 下單數 支付數

例如,綜合排名 = 點擊數*20% + 下單數*30% + 支付數*50%

本項目需求優化為:先按照點擊數排名,靠前的就排名高;如果點擊數相同,再比較下單數;下單數再相同,就比較支付數。

需求分析(方案一)分步計算

思路:分別統計每個品類點擊的次數,下單的次數和支付的次數。

(品類,點擊總數)(品類,下單總數)(品類,支付總數)

缺點:統計3次,需要啟動3job,每個job都有對原始數據遍歷一次,效率低。

需求分析(方案二)常規算子

采用常規算子的方式實現。

需求分析(方案三)樣例類

采用樣例類的方式實現。

需求實現(方案三)

1)用來封裝用戶行為的樣例類

注意:樣例類的屬性默認是val修飾,不能修改;需要修改屬性,需要采用var修飾。

2)核心業務代碼實現

需求分析(方案四)樣例類+算子優化

針對方案三中的groupBy,沒有提前聚合的功能,替換成reduceByKey

需求實現(方案四)

1)樣例類代碼和方案三一樣。(詳見方案三)

2)核心代碼實現

需求分析(方案五)累加器

需求實現(方案五)

1)累加器實現

2)核心邏輯實現

需求2Top10熱門品類中每個品類的Top10活躍Session統計

需求分析

需求實現

1)累加器實現

2)核心邏輯實現

需求3:頁面單跳轉化率統計

需求分析

1)頁面單跳轉化率

計算頁面單跳轉化率,什么是頁面單跳轉換率,比如一個用戶在一次 Session 過程中訪問的頁面路徑 3,5,7,9,10,21,那么頁面 3 跳到頁面 5 叫一次單跳,7-9 也叫一次單跳,那么單跳轉化率就是要統計頁面點擊的概率。

比如:計算 3-5 的單跳轉化率,先獲取符合條件的 Session 對於頁面 3 的訪問次數(PV)為 A,然后獲取符合條件的 Session 中訪問了頁面 3 又緊接着訪問了頁面 5 的次數為 B,那么 B/A 就是 3-5 的頁面單跳轉化率。

2)統計頁面單跳轉化率意義

產品經理和運營總監,可以根據這個指標,去嘗試分析,整個網站,產品,各個頁面的表現怎么樣,是不是需要去優化產品的布局;吸引用戶最終可以進入最后的支付頁面。

數據分析師,可以此數據做更深一步的計算和分析。

企業管理層,可以看到整個公司的網站,各個頁面的之間的跳轉的表現如何,可以適當調整公司的經營戰略或策略。

3)需求詳細描述

在該模塊中,需要根據查詢對象中設置的Session過濾條件,先將對應得Session過濾出來,然后根據查詢對象中設置的頁面路徑,計算頁面單跳轉化率,比如查詢的頁面路徑為:3578,那么就要計算3-55-77-8的頁面單跳轉化率。

需要注意的一點是,頁面的訪問是有先后的,要做好排序。

1234567

1-2/ 1 2-3/2 3-4/3 4-5/4 5-6/5 6-7/6

4)需求分析

用戶行為數據采集模擬

需求實現

1)代碼實現

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM