大数据分析平台-项目2

注意的点:为什么这么写?能不能加些其它的列操作?
数据!
什么样的数据!!

object模块下创建object-main模块
创建UserSession Object类

思路:

​ session的步长和时间 我从首页进入到商品详情到购物车 用户到底跳转了多少页面就是步长
​ 当这个数据统计之后 这个用户在网页中时间段内浏览的次数 通过这种方式找出优质客户和访问时间
​ 比如9点开始访问到10点 之间耗费多长时间

package com.obj.session

import com.dou.model.UserVisitAction
import org.apache.spark.sql.SparkSession

object UserSession {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder()
      .master("local")
      .appName("session")
      .enableHiveSupport()    //开启内置hive
      .getOrCreate()

    import spark.implicits._//隐式转换
    val userVisitRDD = spark.sql("select * from user_visit_action")
        .as[UserVisitAction].rdd//转换模板类或许数据 会变成一个对象 用的话直接对象.

    val sessionUserVisit = userVisitRDD
      .map{case(userVisit) => (userVisit.session_id,userVisit)}
    val session2UserVisit = sessionUserVisit.groupByKey()

    val result = session2UserVisit.map{
      case (sessionId,userInfos) => {
        //步长
        var step = 0
        userInfos.foreach(
          userInfos => {
            //TODO计算时间
            step += 1
          }
        )
        (sessionId,step)
      }
    }
    result.take(10).foreach(println(_))
  }
}

1.session的步长和时间

​ 好处:用户获得用户访问习惯
​ 作为营销效果的体验
​ 作为检测 用于挖掘会员 比如网站100个用户 大量用户访问时间长 但不是会员 说明喜欢APP,但是为什么不作为会员,通过计算数据进行针对客户的运营操作

​ 怎么做:
​ 1、根据用户sessionid进行聚合操作
​ 2、计算聚合后的数量 =》 步长
​ 3、计算聚合后的时间差 =》session时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值