00:00
好了,同学们,我们接下来呢讲第六章啊,Spark案例实操,那么Spark我们前面讲了很多的关于RDD啊,累加器和广播变量的一些内容,其实就是把基本的一些语法呀,API呢给大家介绍了一下,但是呢,我们接下来呢,需要把这些讲过的东西给它融汇到咱们的业务当中,融汇到咱们的需求当中啊,看看如何去实现,所以接下来我们的案例实操呢,其实主要的目的就是为了锻炼咱们之前学过的那些内容啊,那么这里说了啊,咱们接下来呢,要做的是我们的电商网站的真实需求啊,所以呢,在我们实现功能之前。咱们需要把这个数据呢,先给他准备好啊,就是这样。嗯,这里呢,我们来打开啊,打开以后呢,我们这边,嗯,咱们来点一下资料,资料里面我们这边会有一个咱们的18个的数据啊,这个数据里面有一个叫u visit action啊是这样的,那这个呢,就叫用户的访问的行为数据啊,那这个怎么理解呢?首先咱们看课件中的截图,那么我们想要做我们需求你得有数据,而这个数据呢,格式就是我们现在的这个样子,这个里面他说了是从我们真实的数据文件当中截取的一部分的内容,它表示为电商网站的用户行为数据。
01:27
主要分为用户的四种行为,你不说叫用户行为吗?那么用户都有哪些行为啊,我们这里给大家准备的是搜索、点击、下单和支付的数据啊,就是里面有搜索的数据,有点击的数据,有下单的数据,有支付的数据,但是这个四种行为咱们如何来区分,这个我们还不知道。那我们回过头来大家看,我们给大家打开了一个电商的网站,那么在电商网站当中,大家会发现我们一开始就会有一个大的搜索框,对不对?但我个人呢,比如写欢篮球,那我就写上篮球鞋啊,比方说篮球鞋,当我写完之后,我去点击这个放大镜,这个就叫什么呢?叫搜索,所以大家可以看到在电商网站当中,这就有一个搜索功能,那我刚才写的篮球鞋其实就是一个搜索的关键字,那么这样的话,这条数据就会被记录下来,这是我用户的行为,所以我点一下点点完以后大家会发现在我们的下面就会有很多的商品,对不对?哎,这个时候我就发现哟,咱们这双鞋挺漂亮的对不对?挺漂亮的怎么办?我想去看一看,所以呢,我会点击这张图片,点点击以后是不是进入了它的一个详细页面呢?同学们是不是这样的,那这个我们就称之为叫点击,诶它就称之为叫点击什么。
02:50
想我进入到我的详细页面了,刚才那个是搜索,现在是点击,这两个动作能同时存在吗?不可能,你点击那个放大镜就是搜索,我点击那个图片是不是就是我们的详情页面呢?所以啊,他们不可能同时存在,所以咱们的一条数据同看,就这一条数据,他要么是搜索,他要么就是点击,它不可能说又是搜索又是点击,这绝对不可能的啊。
03:17
还有咱们接着往下来看,下面呢,还有个叫下单,这个下单一般是我们加入购物车之后,它会有个下单,对不对?所以啊,它属于一个后续操作,咱们现在的这个地方应该是点不了的,所以啊下单应该跟他们也不是一个同时存在的,应该是独立存在对不对?还有一个叫支付,当你下单没有任何问题的话,你是不是应该付款啦,这个付款应该点击相应的按钮去支付吧,所以咱们的支付怎么办?它应该也是独立的行为,所以啊,咱们这个数据当中的每一行,它要么是搜索,要么是点击,要么是下单,要么是支付,它不可能有重复的,所以又有搜索,有点击,不可能又有下单,又有点击也不可能又有支付,又有下单,是绝对不可能的。四个选项当中只能出现一个,哎,就是这样啊,好了,首先把这个行为咱们先区分开,第二个咱们再看数据的一个格式和类型。
04:18
首先这个我们的真实数据是用逗号隔开的,但是你会发现呢,里面会有大量的逗号,看着就会很乱,所以呢,我们给大家准备的数据稍微的从格式上有点儿变化,咱们打开。打开以后大家会发现呢,咱们这个地方是什么呢?是下划线,用下划线把它连接在一块儿,并没有采用逗号,那么这样的话呢,我们后面就不会出现大量的逗号,但是你会发现后面会出现什么none。这个囊什么意思,就是没有值,哎,没有值,那好,那我们这个囊都分别代表了什么含义呢?咱们来看一看,首先第一个我们这边叫日期,咱们回过头来对比一下,大家看一下咱们的这个啊,什么我们的呃,20190717,这就是我们的日期啊,然后再往下这个叫用户的ID啊,中间的这个叫用户的ID在这儿呢。
05:14
啊,这是我们的I,然后面这个是什么呢?Session I,这是我们的I,如果有部开发经验的同学,咱们的用户访问服务器呢,会有个session的概念,那么每个session应该有自己的ID,对不对?诶,就是这样的啊,它表示的是用户和服务器之间的一个通信的状态,嗯,好,我们接着往下,下面呢是页面ID,这个是什么意思呢?大家看在我们的这个位置,这个位置是我们的页面ID,它表述的是当我们的用户访问某个页面的时候,比方说一双鞋的详细页面,这个页面呢,它会有个ID标识啊,告诉你我们当前访问的是哪一个页面,所以啊,这个也是能够记录下来的啊。还有我们这边叫做动作时间,咱们称之为什么呢?叫时间戳,就是你的用户行为是在哪个时间点产生的啊,年月日十分秒对不对,它这个是不带毫秒的啊,只到秒就可以了,好,我们。
06:14
再来往下看啊,往下看下面的这个地方就是手机苹果笔记本,这个咱们就叫查询的关键字,那么也就意味着当我们的这个,诶,我们的苹果呀,什么手机啊,这些东西如果存在的话,说明你当前的数据应该是什么,应该是一个搜索的功能,所以啊,这个关键字就是用来做搜索的,那如果你是搜索的话,后面的这个数据就不存在了,为什么呢?全是捺和负一了,负一表示无效值,这个囊也表示无效值啊,就是这个概念,诶老师,那如果我现在不是搜索呢,你不是搜索的话,你有可能是什么,你就是点击了。点击商品的详细信息,那这个时候大家会发现它分成两大类,一个叫品类,一个叫产品,产品就是商品的意思吗?然后呢,还有叫品类,叫商品的种类,那这啥意思呢?比方说我们的商品是一双鞋,但是这个鞋有不同的分类,比方说颜色啊,分成黄色呀,绿色呀,红色的,对不对,而且还分什么男款女款呢,什么大小号是不是都有可能啊,所以它会分不同的品类和我们的产品啊,比方说咱们刚才看到的这双鞋,这双鞋就是某一个什么我们的篮球鞋的一个商品,然后呢,里面大家会发现就选择颜色呀,尺码,包括我们这些东西,这就属于它的具体的品类啊,就是这样,所以呢,我们这里就会把不同的品类的ID和它商品的ID给它记下来,那么两个这就叫点击啊,你点击的就是这个商品的这个品类的一个详细的页面,诶就是这个意思啊。
07:53
好了,诶,那如果现在我不是点击呢,你不点击可能是下单呢,所以它的下单的这个位置,大家可以看到,它这里面是一杠二杠三,为什么?因为它表述的是我同时对多个我们的商品和品类下单,所以下单可能是多个,它如果是多个的情况下,它应该有连接在一块的符号,我们在给大家准备的数据当中,我们这里是用逗号隔开的啊,在我们真实的数据当中,它这里是用横线隔开,这个大同小异,就是看分隔符嘛,这个倒是问题不大啊,咱们这里采用的是什么呢?我们的逗号隔开就可以了啊,这个是我们的品类,这个是我们的商品,咱们知道就可以了,嗯,好,接着往下,那往下除了下单以外还有支付呢,因为我们下单完成以后就要支付啊,所以支付的时候也是一样的,你可以对多个商品和品类进行支付,所以它也会有多个,那么这里面。
08:53
是用横线连接,而我们给大家准备的数据是用逗号连接,所以啊,咱们的数据就是这样的一个格式,要求咱们接着看看往下走啊来,他说了,数据规则如下,第一个数据文件中每行数据它采用的是下划线分隔数据,记住我们给大家准备的数据是用下划线把数据给它分隔开的,嗯,然后呢,每一行数据他表示用户的一次行为,这个行为只能是四种行为当中的一种啊。
09:27
他不可能两种行为同时存在,这是不允许的啊,然后如果搜索关键字为,那表示数据,它不是搜索数据啊,那你为那的话,你肯定没搜索过呀,对不对?好,如果点击的品类ID和产品ID为负一,表示数据,它不是点击数据,但咱们刚才看到了你这里负一,那说明你当前不是点击啊,如果你这为那你就不是搜索嘛,嗯,好,针对于下单行为,一次可以下单多个商品,所以品类的ID和产品的ID可以是多个ID之间用逗号隔开,咱们刚才这个地方不都是用逗号隔开的吗?嗯。
10:09
好,继续,然后呢,如果本次不是下单行为,则是采用捺来表示,所以咱们这个地方如果为就说明它不是我们的是吧,我们的下单,嗯,好接着往下,他说支付行为和下单行为类似,他也会有多个品类ID和产品ID,他们中间也是用逗号隔开,如果不是支付的话,也会用来表示,所以咱们在当前的这个数据当中,后面也可以是啊,诶老师,那最后一个是什么?最后一个它表述的是我们的什么,我们这边叫城市ID,咱们可能暂时还用不上啊,咱们了解一下咱们数据的来源,其实就够了啊好,接着往下,下面呢有一个对字段的详细说明,第一个咱们叫日期,第二个叫用户的ID,第三个叫session ID,第四个叫页面ID啊,第五个叫动作的时间点,就是时间戳了,嗯,然后这个呢,是我们搜索的关键字,然后这两个。
11:09
是我们的商品品类和那个商品的ID,这个是我们下单的品类的ID的啊集合,这个是我们下单的时候我们的那个商品的ID的集合,这个是我们支付品类的ID集合,这个是我们支付商品的ID集合,这个是我们层次的ID,所以啊,基本上我们把那个数据的格式呀,都已经给它准备好了啊,大家看这个表格,其实理解咱们的数据也没有问题啊,然后后面呢,为了处理方便呢,我们提前给大家准备了一个样例类啊,就是因为我们用类的方式来访问数据,可能有的时候更加简单啊,但是这要看你到底用不用了,你要是不想用这个不用也没有关系啊,咱们就事先准备好,其实就够了,嗯。好了,这个呢,数据呢,我们就先说到这里,然后我们再给大家去讲具体的需求,好吧,同学们。
我来说两句