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(
"""
SPARK : SQL连续三天登录的用户
最新推荐文章于 2024-08-27 11:13:57 发布

最低0.47元/天 解锁文章
3772

被折叠的 条评论
为什么被折叠?



