00:00
好同学们,我们接下来呢,来把需求一呢,咱们来讲一下啊呃,所谓的需求一啊,其实呢,他说了叫top ten热门品类,那这里怎么来理解这个top ten热门品类呢?对吧?诶怎么来理解这个,首先呢,我们来说一下,因为这个首先第一个热门每个电商网站是不一样的,比方说我们回过头来同学们看。我们在电商网站当中啊,你说热门呢,就是大家比较关注的比较多,是不是这样的,比方说评论数量,它就会有一个排列,那或者呢,你说我们的这个热门叫销量最多,那也可以,对不对啊,或者什么价格是吧,也可以,这都叫热门,就大家关心嘛,那还有一个叫综合排名,综合排名呢,就是把这几个指标呢,做一个权重比例,然后呢,得到一个综合的一个排名值,最终呢,看哪一个放前,哪个放后,其实啊,就是你的这个热门的东西啊,会放在前面,大家可能更关注一些,诶就是这个意思啊,但是我说了,每个电商网站呢,可能指标它不太一样,对不对,所以啊,这个呢,我们不去看它的细节啊,那么这个品类是什么意思呢?品类他说了,它是指产品的分类。
01:09
大型电商网站品类是分很多级别的啊,咱们的项目中品类只有一级啊,不同的公司可能对热门的品类不一样啊,那我们会按照品类的点击、下单、支付的这个数量来统计,热门的品类就意味着呀,咱们想看看谁在前谁在后,看的是什么诶点击数量或者呢下单的数量,或者说支付的数量,他们都是针对于某一个品类来讲的,那么下面呢,还有一个叫综合排名,这就是我们刚才说过的啊,有一个综合的概念,那么综合当中啊,它就会有个权重,比方说点击数量占百分之多少,下单数量占百分之多少,我们的支付数量占百分之多少,最后得到一个排名值,但是啊,这个就稍微显得有点复杂了,所以我们把咱们的需求呢,就优化一下简单一点,那么先按照我们品类点击数量排名,然后呢,点击数量越多的排名靠前啊,优先显示。
02:09
那么如果点击数量相同的,我们就看那个下单的数量,诶下单的数量靠前的,诶,我们就可以把它展现出来,那如果下单数量相同呢,我们就看它的支付的数量好不好,同学们,所以说我们把这个需求呢,咱们简化一下,嗯。那如果简化了以后,那咱们的这个功能啊,相对来说就好像简单了很多,为什么?因为我们先看点击,大家看一下你这个不就是品类吗?这个不就是点击吗?那你如果把它当成word,把它当成count,那不就是word count吗?对不对?那你把它当成word,你再把下单的数量当成count,那不也是word count吗?然后呢,你把这个支付当成count,把它当成word,不还是word count吗?所以你会发现呢,其实它就是个word count,没有别的,对吗?所以啊,好像这个功能诶还有点简单了啊好,咱们把代码呢,一块儿来写一写啊,一块来写一写,嗯,好,那我们首先呢,先把该关的关掉啊,咱们在这里创建我们的new,创建一个package,我们叫做requirement,嗯,好,然后呢,在这里我们写上new,我们写上它,咱们叫SPARK01,然后呢,我们写上啊,咱们叫REQUIREMENT1,咱们叫hot开它啊我们的GR,嗯。
03:25
然后呢,叫top ten,咱们叫做分析呀,嗯,好了啊,有点长啊,没关系,就这么写吧,咱们叫热门品类top ten分析啊,然后给他一个men,诶好,然后呢,我们写个咱们叫做todo啊todo把这个需求呢,给它列出来,咱们这个需求咱们看一看啊,需求在哪呢?在这儿叫top ten热门品类,嗯,给它放过来。好了,接下来我们把基础的代码呢,我们拷贝过来,基础的代码就在这里了,拷贝。好,然后呢,把这个呢,我改一下咱们叫local星啊,嗯,然后呢,把这个地方咱们来啊。
04:06
好,最后呢,给它写上RSC,点我们的stop,嗯,行了,那我写这个需求呢,我们不再画图给大家去分析了,因为好像就是个word count,对不对,所以啊,我们想个办法干嘛呢?我们先把文字性的描述给大家梳理一下,然后我们再写代码啊,首先第一个啊,我们先读取咱们的什么呢?原始的日志数据,因为你的数据都没有,你做什么分析都是不可能的,对不对,所以先把那个日志数据先给他拿到啊好,那接下来就简单了呀,干嘛呀,我们叫做统计啊,咱们品类的什么,我们叫做点击数量对不对?诶,那好,大家看你统计的时候,那不就是我们的品类ID,然后再加上我们的点击数量嘛,对不对,好了,然后呢,我们再来啊,那你这个点击数量统计了,那我们下单的数量也可以统计啊,所以统计品类的下单啊,咱们叫下单的数量,所以这边呢,我们。
05:06
写上啊,咱们叫下单数量,嗯,好了,再来啊,再往下,那还有我们的那个支付呢,所以来把这个写上,咱们叫做支付啊数量这个呢,我们也给它写上啊,咱们叫支付的数量,那我们写完之后,那我们最后想干什么呢?对不对?来写上,那我们说了,咱们的根据这些数量呢,进行我们的排序,对不对,所以啊,来将我们的这个品类啊进行我们的排序,并且啊,咱们叫并且它什么呢?取我们叫做前十名啊前十名,所以这是我们的要求,然后呢,来写上第六个,嗯,将我们的这个嗯结果啊,将结果咱们采集到我们的控制台,咱们叫控制台打印出来啊打印出来就这么几个步骤啊,那我相信啊,前面的几个我觉得都没问题,为啥呢?就是work count,你把这个当成word,把它当成count,那不就是。
06:06
Count嘛,对不对,可是呀,这个地方就有点儿麻烦了,为什么呢?将品类进行排序,这个排序没有那么简单,为什么他需要先看点击,再看下单,再看支付,所以啊,它有个顺序在里面啊,来干嘛呢?有个点击啊,点击数量的一个排序。然后呢,还有什么呢。你点击数量越多的,它放在前面,那如果相同的,他看下单啊,数量的一个排序,那如果下单数量呢,如果多的放钱,如果相同的,看下一个叫支付啊,咱们写上叫支付的数量的排序,诶就是这样,所以啊大家会发现它会有这样的一个顺序在里面。啊,会有这样的一个顺序在里面,诶,那这个怎么弄啊,因为他们三个是独立统计的,我们的抗啊,那你怎么能够当他排序之后,相同的你再去看它呢。
07:03
对不对,好像也行,但是会稍微显得感觉有点麻烦啊,你的干嘛呢?举个例子啊,你是双鞋啊,和一个衣服,他们俩的这个数量相等了,你的你是不得去这边把那个鞋和衣服的下单找到,然后呢,再判断谁大谁小对不对,诶然后看谁在前谁在后,这样的话就感觉很不方便,所以说你的这种思路呢,我觉得呀,不好实现,为什么呢?是独立的,你独立的话怎么会有先后之分呢?所以好像不太好实现,但是我突然发现呢,我们的这个顺序啊,咱们好像在哪碰见过,你们在学GALA的那个排序的时候,有没有学过一个这个概念呢,叫元组的排序啊同学们。元组的排序,什么叫做元组呢?就是多个无关数据所组合成的什么,我们的一个数据的集合,咱们就称之为叫元组,对不对?那么元组的排序啊,就比较有特点了,为什么呢?他们先啊比较我们的第一个。
08:03
如果第一个相同,再比较啊,我们的第二个,嗯,第二个A,然后呢,再咱们叫比较我们的第三个啊,再比较我们的第三个,它以此类推,哎,以此类推。所以啊,好像跟这个是不是就感觉很像啊,它就很像,所以那既然我们如如果有这样的一种思路的话,那我能不能在第五步的时候,我先想办法。把这234的这四步呢,这就是这三步操作呀,给它融为一体,我变成这个样子行不行呢?大家看如果我能够变成这个样子的话,是不是好像就可以了呢?什么呢,把品类的ID我放过来,然后呢,我把我们的三个数量当成元组来用,所以大家看点击数量我放到这儿,然后呢,我把下单数量呢,诶我们放到这里,然后呢,我再把呢,我们的支付数量我放到这儿,那么这个时候大家就会发现什么呢?他们三个就变成一个元组,是个整体了吧,那么我们在排序的时候,是不是就先比较他,再比较他,再比较他了,那么这样的话就顺理成章的可以进行我们的排序,再取前十名了吧,所以啊,大家想第五步就有点麻烦了,咱们前面这几步啊,就是个world,这个咱们做的太多了,对不对,所以啊,第五步才是关键。
09:34
没关系啊,如果大家现在还不太熟悉,我们慢慢来啊,我们一步一步来操作,先把思路呢给他梳理一下好不好?同学们,OK,先这样啊。
我来说两句