要求 :计算给定的页面访问流的页面单跳转化率
伪代码流程:
我们需要去分析每一次的页面访问流程,也就是用户从进入网站到离开网站这个流程中所访问的页面顺序,也就是一个session中的页面访问顺序。
假如一个session的页面访问顺序为1,2,3,4,5,那么他访问的页面切片就是1_2,2_3,3_4,4_5,如果得到所有session的切面切片m_n,就可以计算每一种页面切片的个数,即count(m_n),就可以计算每一个页面单跳转化率。
那么如何获得一个session的访问顺序?
import java.util.UUID
import commons.conf.ConfigurationManager
import commons.constant.Constants
import commons.model.UserVisitAction
import commons.utils.{
DateUtils, ParamUtils}
import net.sf.json.JSONObject
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{
SaveMode, SparkSession}
import scala.collection.mutable
object PageConvertState {
def main(args: Array[String]): Unit = {
//获取限制条件
val jsonStr: String = ConfigurationManager.config.getString(Constants.TASK_PARAMS)
val taskParam: JSONObject = JSONObject.fromObject(jsonStr)
val taskUUID: String = UUID.randomUUID().toString
val conf = new SparkConf().setMaster("local[*]").setAppName("PageConvertState")
val sparkSession: SparkSession = SparkSession.builder().