前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >准备数据集用于flink学习

准备数据集用于flink学习

作者头像
程序员欣宸
发布2020-05-26 14:41:00
8880
发布2020-05-26 14:41:00
举报
文章被收录于专栏:实战docker实战docker

在学习和开发flink的过程中,经常需要准备数据集用来验证我们的程序,阿里云天池公开数据集中有一份淘宝用户行为数据集,稍作处理后即可用于flink学习;

下载

  1. 下载地址: https://tianchi.aliyun.com/dataset/dataDetail?spm=a2c4e.11153940.0.0.671a1345nJ9dRR&dataId=649
  2. 如下图所示,点击红框中的图标下载(名为UserBehavior.csv.zip的文件太大无法在excel打开,因此下载体积小一些的UserBehavior.csv):
在这里插入图片描述
在这里插入图片描述
  1. 该CSV文件的内容,一共有五列,每列的含义如下表:

列名称

说明

用户ID

整数类型,序列化后的用户ID

商品ID

整数类型,序列化后的商品ID

商品类目ID

整数类型,序列化后的商品所属类目ID

行为类型

字符串,枚举类型,包括(‘pv’, ‘buy’, ‘cart’, ‘fav’)

时间戳

行为发生的时间戳

时间字符串

根据时间戳字段生成的时间字符串

  1. 下载完毕后用excel打开,如下图所示:
在这里插入图片描述
在这里插入图片描述

增加一个字段

为了便于检查数据,接下来在时间戳字段之后新增一个字段,内容是将该行的时间戳转成时间字符串

  1. 如下图,在F列的第一行位置输入表达式,将E1的时间戳转成字符串:
在这里插入图片描述
在这里插入图片描述
  1. 上图红框中的表达式内容如下:
代码语言:javascript
复制
=TEXT((E1+8*3600)/86400+70*365+19,"yyyy-mm-dd hh:mm:ss")
  1. !!!有个问题要格外注意!!!:上述表达式中,由于8*3600的作用,得到的时间字符串实际上是东八区时区的时间,在flink sql中,如果用DATE_FORMAT函数计算timestamp也能得到时间字符串,但是这个字符串是格林尼治时区,此时两个时间字符串的值就不同了,例如从F列看2017/11/12和2017/11/13各一条记录,但是DATE_FORMAT函数计算timestamp得到的却是2017/11/12有两条记录,解决这个问题的办法就是将表达式中的8*3600去掉,大家都用格林尼治时区;
  2. 表达式生效后,F1的内容就是E1的时间字符串,接下来F列的所有记录都作转换,鼠标放在下图红框位置时,会出现十字架标志,在此标志上双击鼠标:
在这里插入图片描述
在这里插入图片描述
  1. 完成后如下图,F列的时间信息更利于我们开发过程中核对数据:
在这里插入图片描述
在这里插入图片描述

修复乱序

  1. 此时的CSV文件中的数据并不是按时间字段排序的,如下图:
在这里插入图片描述
在这里插入图片描述
  1. flink在处理上述数据时,由于乱序问题可能会导致计算结果不准,以上图为例,在处理红框2中的数据时,红框3所对应的窗口早就完成计算了,虽然flink的watermark可以容忍一定程度的乱序,但是必须将容忍时间调整为7天才能将红框3的窗口保留下来不触发,这样的watermark调整会导致大量数据无法计算,因此,需要将此CSV的数据按照时间排序再拿来使用;
  2. 如下图操作即可完成排序:
在这里插入图片描述
在这里插入图片描述
  1. 完成排序后如下图所示:
在这里插入图片描述
在这里插入图片描述

至此,一份淘宝用户行为数据集就准备完毕了,接下来的文章将会用此数据进行flink相关的实战;

直接下载准备好的数据

  1. 为了便于您快速使用,上述调整过的CSV文件我已经上传到CSDN,地址: https://download.csdn.net/download/boling_cavalry/12381698
  2. 也可以在我的Github下载,地址: https://raw.githubusercontent.com/zq2599/blog_demos/master/files/UserBehavior.7z
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载
  • 增加一个字段
  • 修复乱序
  • 直接下载准备好的数据
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档