00:00
啊也会好一点,呃,那么今天呢,咱们主要写的代码,第一个啊,是我们封装了一个我们这个工具类啊菲几个CU对吧,那么这个工具类的封装呢,其实就是GDPC连接,那么关于我们现在这块收益给大家介绍的是什么呢?就是关于这块对吧,它的一个JS对象的一个处理。啊,它怎么样去封装这些对象呢?那它是根据我们这个查询结口及流大set的里边有个方法叫get mad date对吧,根据这个方法呢,可以拿到原数据信息,拿到原数据信息之后,咱们呢,可以封装我们现在这样的一个建对象,然后最后把这接对项放在一个集合里边来返回,对吧,这是第一个啊这第一个,那么第二个呢,那么咱们现在呢,把这个完整的功能,就是说我要做首单,首先第一件事你要干什么呢?我要从我们这个对吧,这个卡这个卡卡里边,然后从我们的order in inform对这个主题中把咱们这个订单数据啊给拿出来,那么像这块代码到目前为止,同学们从这儿,然后呢到咱读数据对吧,然后接下来到获取咱们这个啊偏移量,那最后啊,这里还忘了一件事,对吧,咱们现在处理完之后,这里偏移量是不是得提交一下呀,对吧,把这个东西呢,咱们到我片量提交对吧?Offet。
01:15
My YouTube点咱们现在呢,是不是得去对一下呀,对吧,然后呢,把topic给传过来,然后呢,把咱们的group ID对给传过去,然后再来一个什么呢?咱们这个outside ranges对在这里。咱们现在呢,到整个提交到这块呢,应该大家代码比较应该比较熟的对吧?然后接下来呢,那咱们现在呢,把这个完事之后啊,同学们对吧?那我看一看第一个啊,我现在要获取数据对吧?那么获取数据之后呢,当家在写代码的时候别着急写,说老师今天做了四个功能,我大家拿我先对把这仨做出来对吧,后来发现对吧,代码写完了在程序运行不通,那是非常痛苦的对吧,找错你不知从哪找对吧?那么咱们现在我在写的时候,首先我是不是得先确定我从咱们那个卡卡里面把这数据给拿到了呀,对吧,拿到之后呢,咱们在这里去做了一个什么,做了一个转换,原来你从我们那个这个卡卡里面拿到的是接子格式字符串,那最终我封装是什么呢?我是把它封装成我们这个订单对象了呀,对吧,那么订单对象我除了封装之外,我是不还创建了两个的这个字段,一个呢是我们这个日期,另外一个是小时,给这两个小时日期和小时啊做了一个赋值,那这块呢,应该是比较简单的啊,这块应该是比较简单的。
02:34
对吧,然后接下来再往下走,那么再往下走呢,咱们判断是否为首单,那么怎么判断是为走首单呢?那我就对我当前采集周期的数据啊来对吧,做一个相当于便利对吧,那么我现在那我怎么便利呢?其实我如果是首单的话,我会去更新它的一个属性对吧?那所以说呢,我用的是麦。卖了底层呢,也会把咱当前采购数据呢,都给他取出来,对吧?然后接下来那么咱们现在呢,拿到这数据之后,我都可以得到咱们当前订单呀,这个是哪个用户下的,然到用户的ID,然后根据用户的ID呢,到我们这个菲尼克斯里边去查询,对吧?到咱菲尼克斯里边去查询对吧?那么这种方式呢,不好,为什么?因为每一条咱们这个记录,每一条订单它都要去查询一次,对吧?这个呢,查询语句啊,太多了啊,其实说都去查询一次略不太合适,因为咱们有一个prepare去编译嘛,对吧?那么但是呢,它组织的搜狗语句太多了,对,所以说呢,我觉得这也不好,那咱们怎么做的呢?我是以分区为单位,然后将整个分析数据呢,咱们拼成一个折扣来进行执行,原来呢是相等的关系,现在呢,只要是我在咱们这个分析格斯里边,对吧,把咱们ad啊,在我这个范围里数据都可以查出来,那么这里是不是有几个坑啊,第一个坑,你在查的时候,这个字符串拼接这几个坑,那么第二个坑。
03:56
那再去获取数据的时候,这个大小写这个坑,第三个咱们在转换的时候,我通过order info,它拿到的是我们的浪类型数据,但是呢,我们在我们分尼克斯里边查询它的字符创,所以说呢,这个类型一定要转换一下,对吧?这个类型一定要转换一下,那么到目前为止,我相信这些代码大家呢,应该都吧可以搞定对吧?可以搞定,然后接下来,那么第三个是干什么呢?第三个咱们是不是得往我们这个a base里把状态更新一下来,对吧?那么怎么更新的呢?那么其实呢,我们是借助有一个叫SIM to菲尼克斯这个方法,但是这个方法本身RDD啊,它并没有对吧?那么你需要干什么呢?你需要把咱们这包给它导进来吧,对吧,你需要导咱们这包对吧?那么咱们现在在导包的时候呢,那他会有一个这个方法,这个方法你需要哪些参数,咱们直接对吧,这个可以直接根据提示对吧,来把它给完善一下,但是我们在去保存的时候,注意,并不是所有的这个订单我都需要给新状态对吧,是不是只是我们的首单用。
04:56
户,我需要更新状态,人家如果是非首单用户它是零的话,那说明已经这个状态在咱们这表里不是已经存在了呀,是吧?所以说呢,我要把首单用户给它过滤出来,而且在保存的时候呀,那这里还有一个注意的地方吧,就是我现在在保存的时候,它要求你对吧?你现在RDD中它所保存的这个类型的属性对吧?和谁呢?和我们这个分尼克斯里边它的一个表中的字段数要保持一致,对吧?这是第三步啊,这第三步我估计这三个做完就得九点多了,对吧?然后呢,那回去今间你得加班了对吧?那第四个需求呢,那就得回去做了对吧?第四个需求干什么呢?同一个批次中放在的修正不一样,同学们,那么这块呢,你们得先想,为什么我要修正它。
05:43
对吧,这个东西如果不清楚会有什么问题,对吧,咱们说如果说我现在一个用户对吧,他的手比较快对吧,然后呢,咱们你们为啥出班长是不是,然马上想到班长是不是,那么如果说我现在呢,在这里我的一个用户对吧,他的一个速度比较快,那么在咱们同一个批次里边,我下了两个订单,那么这个时候是不是我们现在这两个订单,它都会标记为我的首单的,对吧?如果以前从来没有下过单的话,都会标记为首单,但这个时候统计的时候它结果是不准的。
06:14
对吧,所以说呢,那我要修正一下,修正思路是怎么样的,把这个用户放到一组里面去,对吧?然后判断一下我分完组之后,这个用户到底下多少个订单,如果说我现在订单数大于一的话,那说明我下了多个订单,然后接下来,那么咱们现在呢,那是不是得对多个订单进行一个时间的一个排序啊,排完序之后呢,我把第一个你下最早订单给它取出来,然后看一看你标记的是什么,如果标记为首单了,那我后边的都得改成非首单,如果你标记的就是非首单,后边咱就不需要改。对吧,哎,所以说整个的思路呢,大概是这样啊,整个的思路大概是这样,这个呢是咱们今天呢,讲的这个全部内容啊,剩下的时间,然后你们看一看哪块没听懂是吧,然后问一问啊。
我来说两句