27.session訪問時長和步長佔比本地測試
阿新 • • 發佈:2019-02-19
本文為《Spark大型電商專案實戰》 系列文章之一,主要介紹之前實現的訪問時長和訪問步長所佔比例在本地進行測試。
說明
對於Accumulator這種分散式累加計算的變數的使用,有一個重要說明:
從Accumulator中,獲取資料,插入資料庫的時候,一定要,一定要,是在有某一個action操作以後再進行,如果沒有action的話,那麼整個程式根本不會執行。
必須把能夠觸發job執行的操作,放在最終寫入MySQL方法之前。
計算出來的結果,在J2EE中,通常是用兩張柱狀圖顯示。
System.out.println(filteredSessionid2AggrInfoRDD.count ());
//計算出各個範圍的session佔比,並寫入MySQL
calculateAndPersistAggrStat(sessionAggrStatAccumulator.value(), task.getTaskid());
MySQL資料庫設定
使用SQLyog工具在MySQL的sparkproject
資料庫中建立task表,表結構如下
在“詢問”-“2表資料”中的task_param中輸入以下內容並儲存
這裡的startdate和enddate日期都是測試當天的日期,因為生成的模擬資料日期是當天的,所以在本地測試的時候這裡的日期也要改為測試當天的日期
測試結果
首先執行UserVisitSessionAnalyzeSpark.java
,如果沒有報錯,執行正常的話可以在MySQL資料庫的session_aggr_stat
中看到類似如下資料