219頁(yè),繼續(xù)往下看。
在新用戶首購(gòu)當(dāng)次Session 和 復(fù)購(gòu)當(dāng)次Session 的行為分析特征構(gòu)建的過程中,可基于4.5 節(jié)中構(gòu)建的特征庫(kù)進(jìn)行二次開發(fā)。
按日期分區(qū)記錄每天新訪問用戶的特征,從行為事件、商品類型、商品特征、瀏覽時(shí)長(zhǎng)等維度構(gòu)建特征模型。
和4.5 節(jié)中,介紹的用戶特征庫(kù)不同的是,4.5節(jié)構(gòu)建的特征庫(kù)是記錄用戶每一次行為的明細(xì),而本節(jié)是對(duì)用戶首訪行為進(jìn)行匯總,將其匯總成一條記錄。表結(jié)構(gòu)設(shè)計(jì)參考下面維度表所示。

session 分析特征庫(kù)
下面通過案例介紹如何抽取用戶首次訪問的session.
這里有一張記錄用戶點(diǎn)擊行為日志的底層表‘ods.click_event_log’ 表,從該表中對(duì)當(dāng)日訪問的新用戶按當(dāng)日訪問時(shí)間做正排序,取第一次訪問時(shí)間對(duì)應(yīng)的sessionid,即是用戶首次訪問的行為記錄。示例代碼如下:


這里用到了一個(gè)函數(shù):
row_number() over (partition by cookieid order by eventtime asc) as rank
當(dāng)前日期分區(qū)里面,判斷是新用戶,這個(gè)案例很好:
https://blog.csdn.net/qq_25221835/article/details/82762416
在使用 row_number() over()函數(shù)時(shí)候,over()里頭的分組以及排序的執(zhí)行晚于 where 、group by、 order by 的執(zhí)行。

csdn 上案例,根據(jù)分組排序后取序號(hào)為1的數(shù)據(jù)
通過上面的建模,最后得到用戶首次訪問行為特征的Session表,如下圖所示:

Session 分析特征數(shù)據(jù)結(jié)構(gòu)示例
后續(xù)進(jìn)一步對(duì)用戶訪問特征的Session表進(jìn)行透視分析,可以從多個(gè)維度挖掘用戶首訪特征。
分析方法與結(jié)論
通過對(duì)構(gòu)建的首訪用戶行為特征進(jìn)行透視分析,可以從用戶訪問路徑,訪問商品品類,瀏覽商品價(jià)格區(qū)間、對(duì)促銷敏感程度等維度挖掘首訪用戶特征。
下面通過對(duì)用戶訪問路徑進(jìn)行分析的實(shí)踐案例來(lái)介紹。

SparkSession.builder 來(lái)創(chuàng)建一個(gè) SparkSession 的實(shí)例,并通過 stop 函數(shù)來(lái)停止 SparkSession,創(chuàng)建的SparkSession類型的Spark 對(duì)象。
spark.sparkcontext.textFile().map(_.split(",")).map(row =>Row(row(0),row(1),row(2),row(3),row(4))

sparkContext.textFile() :從 HDFS、本地文件系統(tǒng)(在所有節(jié)點(diǎn)上可用)或任何 Hadoop 支持的文件系統(tǒng) URI 讀取文本文件,并將其作為字符串的 RDD 返回。文本文件必須編碼為 UTF-8。
如果 use_unicode 為 False,字符串將保存為 str(編碼為 utf-8),比 unicode 更快更小。 (在 Spark 1.2 中添加)
.map 含義:
Spark map() is a transformation operation that is used to apply the transformation on every element of RDD, DataFrame, and Dataset and finally returns a new RDD/Dataset respectively
Spark map() 是一個(gè)轉(zhuǎn)換操作,用于將轉(zhuǎn)換應(yīng)用于 RDD、DataFrame 和 Dataset 的每個(gè)元素,最后分別返回一個(gè)新的 RDD/Dataset。
不解釋了,感覺上面好多不懂。— 下一個(gè)階段得研究下spark,上面的變換方式就是使用spark 對(duì)cookiesession.log(用戶首訪session原始數(shù)據(jù))做一個(gè)整理,最后產(chǎn)生基于cookie維度的事件,包括是否支付,訪問時(shí)間等等。
查看表結(jié)構(gòu)如下圖所示,

用戶首訪session原始數(shù)據(jù)
- cookie: 用戶id。
- event: 用戶訪問事件,如點(diǎn)擊加購(gòu),訪問某個(gè)頁(yè)面板塊等。
- ispaid: 用戶本次行為事件是否支付,支付為1,未支付為NULL.
- data_date: 訪問日期。
- time:本次行為事件的時(shí)間。
通過用戶首訪session數(shù)據(jù),可以挖掘用戶集中在哪個(gè)時(shí)間段訪問、集中訪問事件是哪些、主要在哪些行為事件后跳出了訪問、哪些行為事件促進(jìn)了最后下單、訪問時(shí)長(zhǎng)與訪問量的增加是否能促進(jìn)下單等維度的內(nèi)容。
看到223頁(yè),待續(xù)。

如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.qjsdgw.cn/13344.html