00:00
那么再往下走的话,大家想一想,我现在咱们来到了我这个程序里边是吧,来了程来到我这个图里边,咱们现在走到哪了?同学们这个东西我现在是不是已经从这里把这数据对吧?拿到拿到拿到拿到是不是已经往这h base就保存成功了呀,到保存成功了,那现在咱们该干什么了。现在这维度数据都有了,对吧?但是我真正的维度数据和咱们订单明细关联起来没有,没有,我目的是不是要把咱订单明细和咱们维度数据关联在一块儿了,对吧?所以说呢,那咱现在呢,要去关联一下来注意啊,在这里来到哪呢?来到我们的订单明细中啊,在订单明细中,然后接下来在咱订单明细里边这个东西呢,不要去打印输出了,对吧?不要打印输出了干什么呢?我现在呢,要去关联我维度数据啊,关联我们这个维度数据对吧?那么如果关联维度数据的话,大家想一想,咱们现在只需要关联谁就可以了,是不是只需要关联我们这商品就可以了,对吧?因为咱商品现在它其实呢,已经和咱们别的维度关联好了,对吧?那么如果要关联的话,那这个时候咱们是不是就开始想我是用哪种方式呢?是以我们这个对吧,这广播变量的形式,还是以我们现在这个分区的形式呢?都行是吧,其实这个东西呢,到时候看你的一个实际选择对吧,如果说我现在在咱们这里边这个数据量呢。
01:20
不是特别大,对,不是特别大对吧,但是这个大小也和你当前你服务器有关系啊,如果说我现在服务器它的一个driver端,它内存有很大的压力,那你不太适合用广播变量,对吧,如果说像general团队的压力还行,对吧,那你可以使用广播变量,刚才咱们说使不使用广播变量,这次咱就换一个对吧,换一个分区。来大家看一看怎么来处理啊,我现在呢,关联维度数据对吧,那么因为我们做了维度退化啊,注意这里,因为我们这里做了维度退化啊,所以我们这个订单明细直接和谁呢?和咱们这个商品的维度来进行关联即可。
02:08
啊,那么咱们也是怎么做呢?以分区为单位来进行处理,我们这里啊,也是以我们这个分区为我们这个单位啊,来进行一个我们的关联处理,那如果以分区为单位的话,那这块同学们来呗,在这里咱们现在代码写一下啊。也不能就复制粘贴是不是对吧来写一写一起来写对吧,那首先咱们map partition,对吧,然后接下来以分区为单位,当前拿到的是什么,是不是拿到的应该是一个order detail,然后接下来这里是一个一个it tr呀,对吧,It tr然后呢,咱们说啊,一般的我的习惯是这样的,对吧,就是如果迭代器的话,它其实呢,短,有些情况是你你就不许把它转换成集合啊,你直接用迭代器处理也行,短有可能就操作一次,比如说咱关联其实就这样对吧,但是有的时候呢,那可能对迭代器数据呢,你想操作多次对吧,但迭代器本身有问题,就我迭代一次,这数据是不是就没了呀,对吧?所以说咱为了避免出问题的话,我直接把这里面这个数据呢,先转换一下啊怎么转呢?来在这里它点to list先转换成集合,对先转集合,那么这个呢,拿的是order detail list,然后最后呢,咱们把order detail list给转换成我迭代器。
03:29
对吧,然后接下来那这里是不是可以做一些操作的,做什么操作呢?对吧,首先大家想一想,你现在啊,要想去和我们的商品关联,那应该干什么。拿到什么?诶拿到商品的ID对不对?所以说呢,咱们现在要从我们这个订单明细中的,从咱们的订单明细中来获取所有的商品ID啊,获取所有商品ID,那么这个怎么来获取呢?是不是可以通过它里面有一个卖方法来把咱们当前skuidd给获取到,问一下拿到的是谁,是不是skidd list吧,是的商品ID吧,对吧?然后接下来同学们干什么呢?是不是根据咱们当前的商品ID到哪呢?到菲尼克斯里边对吧?把当前这个订单明细中对应的所有商品给查出来了,对吧?根据我们这个商品ID,然后呢,到我们这个菲尼克斯中查询出咱们这个所有的我们这个商品,呃,查询出咱们所有的商品,那么怎么查呢?写一个搜。
04:42
KR,然后呢,SQL这个搜呢,我不写了,同学们对吧,因为我在写的时候,是不是主要是这个字段呢,把字段呢,我给他用一下就行了,来把这个啊来拷贝这些不全拷贝对吧,我现在呢,要去查询,查询到这些数据对吧?从哪呢,从我们的J贸0523对吧,0523对吧,这张表里面查询出来,然后进来加条件备谁呢?Where咱们这个ad,然后接下来in吧,到where我们这个ID,然后in,然后这in的时候呢,这里应该是两个单引号,然后接下来咱们是要把这个数据加进来呀,Dollar对,大括号对,然后接下来在咱们这里边应该是我们这个SKU list的点make string,然后接下来双引号,然后中间对吧,再到这里边对吧,两个单引号是不是逗号了对吧,那么这块呢,注意啊,这个咱们得知道是吧,别写错了,然后接下来是不是可以调过。
05:42
的工具类的呀,有一个叫做非的一个U工具类,它里面有一个creditl list这个方法对吧,把squ啊SQL传过去,然后呢,得到一个对象,这个呢,应该是SKU的这个,这个是它的谁,是不是咱们SKU的它的一个JOBD的list啊,把咱当前的这个商品它的一个机壳给查出来了,对吧,当一个查出来了对吧,那你是不是从咱们这个商品里边来获取好多东西给我们这个订这个订单明细呀,所以说咱们就不能像最初关联我以个状态这样,对吧,直接对吧,把这机合拿过来一看,包不包含,直接给一个这个值就行了,咱们这个东西是不是得把这个值得给传过去呀,怎么传呢?说封装一个map呀,对吧,封装1MAP,那么这个map咱们来呗,在这里的点,我首先呢,对它结构做一个转换啊,首先对它结构做一个转换,那么咱们当前这里是什么是S。
06:42
Puu它的一个de object这个对象啊,它本身是一个这样一个接对象,那么咱们现在可以怎么办呢?我是不是可以把这对象转换成我们现在它的一个SQ对它这样的一个对样的对象,这本身是接对象啊,我现在可以把它转成样对象,转JA点,咱们是不是一个pass object,然后你现在把谁呢?对吧,把这个东西啊,Sorry,不是pass object,如果要是pass object的话,注意同学们它转换的谁,它是不是转换的一格搜串,但是我现在我不是字串了,我本身对象了,那是不是有些什么to加入object的方法呀,对吧,目前咱们对Jason里面其实有这么几个用法了,同学们,一个呢是把杰森格式的字符串啊,转换成我们对象,这是一种,一个呢是把咱们杰森它这个对象,然后转换成咱们对象是不是这一种啊,对吧,那还有什么呢,说我现在还有一种,那有可能我可能需要什么呢?呃。
07:39
有一天咱们可能需要对吧,怎么样去把咱们这个什么对象啊,什么什么的对吧,做一个什么转换对吧?比如我现在有个账号对象对吧,到时候转换成什么Jason对这形式对吧?有可能啊,大家这个收集一下,看一看到时候咱们转换的时候对都有哪些形式对都哪些形式对吧?哎,那我现在呢,在这里to Java object,第一个JS对象咱们得给他对吧,然后第二个,那么咱们的class of的给他什么类型呢?S k in for的SQ in four,然后进来点VR得到的是一个SQ,那么咱们现在给它返回,那应该返回什么说封装的元组啊,SQ ino,点我们那个ID是吧,这是我当前商品的ID,然后和我商品它这个数据类型的这个数据的对象,然后进下来点to map一下,你刚才这个map只是做一个结构的转换,但它还是例子的吧,咱们最后呢,把它转换成map.V2拿到的谁拿到的是。
08:39
Ku,咱们这个INF inform ma是吧,拿到的是我们商品它的一个map,那么接下来再往下走,同学们再往下走的话,咱们是不是得对我当前这个分区里边所有的商品的订单明细来做一个便利啊,对吧?这个order来对他来做一个我们便利对吧?那么如果对它做便利的话,那么直接把这集合拿过来,点我for,每次便利得到的是一个我们现在它的一个order detail对象吧,啊,拿到一个order detail对象,然后接下来咱们根据order detail对象可以获取到什么,是不是可以获取到它的一个商品对吧?可以获取到它的商品来order detail有一个叫SKID,可以获取到上面ID吧,那么咱们现在这个mapb是不是你给我传过来了,我是不是可以从这mapb里边对吧?根据我这个ID来获取我的上品对象啊,来在这里它点get or else,把谁呢?把咱现在的ID给我拿过来对吧,那么只不过咱们现在存。
09:39
的时候对吧,是字符串,人家咱们现在在封装的时候这什么呀,Long类型你得给我做一个转换,在这里点to long一下对吧,然后呢,如果说获取到了拿到啊突突sorry,对吧?来,那咱现在呢,如果获取到的话,拿到,如果没有获取到话,给我反映空吃,然后点2V2这个是这个是我SQ in for到SK for对吧?那么你拿到SQ in for的同学们,咱们是不是可以判断一下呀,如果说我当前这个SQ in for的不等于空啊,其实应该不会等于空的,对吧,如果说它不等于空,那么这个时候咱们是不是给我这个这这这个订单明细,它的个属性赋值啊,哪些东西赋值呢?对吧?大家看一看,咱们这里在赋值的东西主要有这么几个来拿到。
10:25
来到我们这个样类里边,找到我们的订单明细,找找订单明细,那么这里大家看这些在我订单里面这些东西是不是都没有啊对吧,那么咱们呢,PU的ID和名字对吧?然后呢,这品牌的ID和名字以及类别的ID和名字都得我指定,那就先从我们这个SPU的开始,它就等于我们SKU ino点对吧,然后呢,这个s puuidd吧,对吧,那这个东西大家看这个又又又一样的问题啊,咱们当前呢,在这里定义的这个是我long类型,但是呢,你在这他拿到的这什么类型是么string类型啊对吧,类型对到这块呢,你去转换一下to long短,其实如果说啊,你设计的时候,你把它设成一样的些话,对吧,这个就不不存在这问题了对吧,哎,不存在这问题了对吧?然后接下来,那么order detail.s。
11:25
是PU name,它就等于s puuo.s puu name短到接来再往下对来在这里对,然后呢,除了这个之外呢,这里还有什么,它这里是不是得有一个cat GR对吧,ID对吧?那么它就等于什么呢?点我们这categor grade id.two long对吧,然后接下来这块呢,还有一个是我们这个categor grade name对吧,然后这块呢,给它改一下,就等于我们现在它这个点cat name,然后这个呢,是我们这个品牌对吧,那应该是TM对吧,ID对吧,然后呢,等于我们现在T m.ID点我们这个to long一下,然后这块呢,这个t m midd内部是,然后这块呢,是它点TM端内。
12:23
啊来看一看朋学们没写错的吧,好,那么整个报学结束之后呢,那么咱们现在呢,把这个给它赋了一个值,然后给它赋了一个值,然后最后呢,咱们把这集合呢给它返回去啊最后咱把这集合呢给我返回去,呃,那返回之后呢,那这个时候呀,那咱们是不是把这个东西再抽取一下了,来点二我们现在呢,这个VR他拿到的是我们这order detail对吧,只不过这个时候带来什么呢?With SQ版,对这个把商品信息给我拿过来了,Withq stream对吧?来那咱现在呢,把它打印输出一下,在这里做一个我们来打印输出啊,做一个打印输出啊不用这么多啊,然后接下来咱们现在呢,来去看一下我的运营效果啊,来看一看咱们现在呢,整体的运营效果对吧,那么这个运营效果呢,注意看同学们,这个最终呢。
13:23
你要想在这里看这效果的话,你前期呢,是不是也得有好多准备工作要做呀,这就咱们到测试的时候了,同学们,我跟你说停一下吧,啊,我说停一下。
我来说两句