SPARK : SQL连续三天登录的用户

sid,dt,money
shop1,2019-01-18,500
shop1,2019-02-10,500
shop1,2019-02-10,200
shop1,2019-02-11,600
shop1,2019-02-12,400
shop1,2019-02-13,200
shop1,2019-02-15,100
shop1,2019-03-05,180
shop1,2019-04-05,280
shop1,2019-04-06,220
shop2,2019-02-10,100
shop2,2019-02-11,100
shop2,2019-02-13,100
shop2,2019-03-15,100
shop2,2019-04-15,100
求连续三天登录的用户
解析:使用窗口函数,将dt-窗口函数,相等的dt就为连续登录的用户
先开窗,然后用date_sub相减,得出相同的天数,然后分区id和得出的天数,
package com._51doit.spark.day12s

import org.apache.spark.sql.SparkSession

object ThreeDayLogin {
  def main(args: Array[String]): Unit = {

    val spark = SparkSession.builder().appName(this.getClass.getSimpleName).master("local[*]").getOrCreate()
    //csv文件,表头有信息就可以直接读取表头类型,
    val df = spark.read.option("header", true).option("interSchema",true).csv("data\\ThreeLogin.csv")

    df.createTempView("v_login")
    //spark.sql("""""")括号里写3个""
    spark.sql(
      """
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值