背景
前两天面试中遇到一个比较基础的计算UV & PV 的问题。思路比较简单,最重要的是 手写代码 ,平常我们都是在IDE 中编写代码,手写代码的时候大多是情况下都是使用IDE 的提示,遇到手写的时候,就算这种简单的代码也不一定写得出来。
那天采取的一个思路是:先把思路写出来,然后,时间够再添代码进去。有时候确实一些函数拼不出来什么的,但是思路在,好过白卷。
由上面的背景引出 使用SparkSQL 实现 统计 UV & PV 的问题。
数据如下:格式 ip,请求方式,路径
192.168.0.112,post,/app2/index.html
192.168.2.11,get,/app1/user?id=3
192.168.2.11,post,/app1/submittoder
192.168.0.122,post,/app1/goods
....
需求: 求出每个APP 的访问访问次数(UV)和独立IP 访问次数(PV)
整个过程大概分为4步:
1、先构建SparkSession 入口
//构建 sparksession
val sparkSession: SparkSession = SparkSession.builder().appName("pv_uv").master("local[3]").getOrCreate()
2、读取文件
val