1. 程式人生 > >27.session訪問時長和步長佔比本地測試

27.session訪問時長和步長佔比本地測試

本文為《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中看到類似如下資料
這裡寫圖片描述