Spark淘宝案例
Jupyter Spark调度模式
惰性求值与缓存
Spark求值相当于是转换的操作,这时的转换操作没有求值执行。只有有行动操作的时候,转化操作才会实实在在的执行,这时符合进入DAG进行大数据处理的模式。cache是缓存数据,下次执行sqlDF时不再执行查询操作,这时的cache并没有求值,只有在使用的时候才会求值。
Apache Arrow
上传程序
1、在app-11上,右侧打开Jupyter。
2、输入密码。Yhf_1018
3、上传程序,程序在GitHub中,可自行下载。一下是这次课程涉及到的程序文件及存放目录。
4、上传程序文件。点击Upload本地上传。
用户访问流量分布分析
day
代码讲解
创建Spark Session,定义Spark Session,Spark master是app-13提交的端口是7077。
读取CSV模式的文件,跳过header。Format是日期的方式,加载数据信息。创建视图,在视图之上就可以加载SQL语句。需要注意的是,这里没有使用SQL语句执行,直接在Spark中读取对应文件。
启用Apache Arrow。
按天查询流量信息,从taobai,taobai是之前创建的视图,对象都是spark,根据date排序。cache是将查询数据缓存。
创建View,使用SQL的方式出处理sqlDF2。
对数据类型转换,之所以将create_day转换为string,是因为Apache Arrow不支持create_day类型。
将sqlDF转为Pandas所识别的数据类型。创建完Pandas之后就可以画图了。
将sqlDF画成图,create_day为x轴,需要设定x轴时间的各式。将x轴的数据转成45°的角。
操作
1、在后台启动Jupyter打印。
命令:tailf /tmp/jupyter.log
注:这里可以查看Jupyter运行的过程。
2、点击运行,一步一步的进行,等上一步结束在进行下一步。
3、运行。
释放资源
每次做完运行都需要进行一次释放资源的操作。
1、返回Jupyter首页。
2、查看Running。
3、关闭pageViewByDate程序。
Hour
1、上传程序文件。
2、一步步运行。
3、释放资源。
客单量分析
这个指标反映了客户的购买能力。
1、上传程序。
2、运行,逐步运行。
3、释放资源。
代码解释
购买的数/用户的数=客单量。
商品分析
商品PV各环节转化率
点击转化收藏率为多少,然后由收藏转化为购物车,最后由购物车转化购买有多少。还可以有点击率转化为购买的转化率。
代码解释
统计商品的种类,有8916种。
计算有多少商品。
统计商品和商品成功购买的数量,根据数据统计量进行排序。这里只显示了前20行,商品id为303205878的购买数量是最多的,被购买了50次。这并不能说明什么,这50次可能是一个人一次购买了50个,也可能是30天中平均一天2次的购买量。现在还没有说服力。
SQL查询。
查询每个商品做pv,fav,cart,buy这一系列动作,然后通过这个数据在去统计相关的量。
查询做相关动作的数量。
保存DF。
将行变列,将对应的商品id,输出多个列,每一列是相应的pv,fav,cart,buy的数量。
保存缓存。null是没有对应的数量。
清理缓存。
Ratio
1、上传程序文件。
2、运行。
3、资源释放。
4、退出Jupyter后台,按Ctrl+C。
详细学习内容可观看Spark快速大数据处理扫一扫~~~或者引擎搜索Spark余海峰