00:00
呃,刚才呢,咱们给大家介绍了关于我们现在呢,通过reddi对采集到体重日志进行去虫,它的第一种我们的一个方案啊,驱虫的第一种方案,那么这种方案呢,大家注意啊,这一个有弊端啊,这种方案呢,不是特别好有弊端啊,它弊端在哪呢?大家看一下,我们现在呢,通过我们这个filter算子呀,来对它进行一个我们这个啊过滤操作,对吧?那么意味着什么呢?这个filter算子是不是说我假如说啊,我当前这个第一次推里边,然后呢,有十个我们现在这个数据有十个进对项,那每一个进对项,那么咱们是不是都要过滤一下,每一个进对项是不是都要过滤一下,然后你给我返回一个我们现在触发的false呀,对吧?那么咱们现在的过滤的时候,它里边干了一件什么事呢?它里边啊干了一件这个事儿要获取de的户端连接,大家想一想啊,这个连接你不管是什么客户端对吧,只要是连接它本身的就是一个重量级对象对吧,虽然说我们现在说老师,我现在已经对这已经做处理。
01:01
啊,已经使用咱们连接池了,你不用创建了,但是这个连接它每次去获取一次,每次从连接池里取一次,这个东西是不是也得也比较频繁呀,所以说啊,那现在第一种方案它其实呢,对吧,每次或者说咱们现在的每采集周期中的每条数据吧,采集周期中的每条数据,它都要获取一次,我们这个专子连接啊,都需要获取一次我们这个red的连接,对吧,这个连接次数或者操作过于频繁,研究过于频繁,好,那一看到我现在呢,这么说过于频繁,然后每一次都获取,那大家我想这个应该马上应该有一个解决思路吧,对吧,应该怎么办,是不是以我们这个分区为单位来对进行处理啊,对吧?那么如果以分区为单位的话,大家想到的算子是什么呢?For each。
02:01
RD还有别的吗?Map part对吧,对吧,那我问大家,现在咱们这个for RD呢,还是用什么什么这个对吧?这个卖partition的,注意啊,For each它本身呢,其实并不是以分区为单位进行处理的,对吧?是什么for each partition对吧?这个才以分区为咱们进行处理了,而且呢,如果要是for each r TD的话,同学们这个东西它本身的是一个行动算子,对吧,它会触发什么?它触发咱们这个行动操作,相当于我这作业是不是提交了呀,但是咱们现在我这个事做完了吗?没做完呢,对,我还没有去完成什么精准一次性的,对我还没往咱们来这里保存呢,对吧,咱们现在这里,我这个业务还没执行完呀,所以业务没执行完,你呢去给我做一个方D这块呢,不太合适,对吧?所以说我现在要是以分区为单位进行处理的话,咱们用什么,是不是用my partition更合适一点,对吧,所以说那么咱们现在呢,通过ready对采到启动进行驱虫第二种。
03:01
啊,对吧,这是干什么呢?这个以分区为单位,以我们这个分区为单位,对我们这个数据来进行处理,那这样的话可以啊,在咱们这个每一个分区啊,每一个分区啊,在这里每一个分区来获取。一次我们这个red连接啊,获取一次red连接啊,好了,那么如果这样的话,那咱们现在就来呗,对吧,还是啊,我们上面这个Jason object extreme,然后接下来,那么如果以分区为单位的话,那么这个应该是map parts,对吧?Map parts,那我的习惯性啊,同学们,咱们现在这里我在写我们这个相关算子这个参数的时候,这个参数的是不是可以是我们这个小括号,可以是划括号了,你们一般用什么括号画括号,为什么用画括号写的好看啊,像花一样,哎,为什么为什么要画括号,因为你们在这里边呢,可以用我们的模式匹配。
04:06
对吧,但是这划括号不是想用就用的对吧?比如说我现在这里我有两个参数,你的画号还能用吗?用不了了,注意只有在咱们当前的函数啊,只有一个参数的时候,那么这个时候呢,你才能够把它给转换成我们这个划括号对吧?那这个需要注意一下,需要注意一下对吧?所以说那我现在这里边这个东西本身对吧,我现在在转换的时候往这一放对吧,那现在呢,我去操作一下对吧,谁呢,这个呢是我们Jason object对吧,Jason啊object这个兼对象,然后接下来,那么咱们现在呢,拿到对象之后,那么我现在要进行处理注意啊,那么这里如果说你要是以分区为单位的话,这不应该是一个间对项对吧?你看咱们当前这里边它的参数对吧,这是参数应该是什么,这个东西是不是应该是我们现在这个的对吧,它是不是应该是我们现在应该是一个迭代器啊,所以说呢,应该是一个Jason object,它的一个迭代对吧,它的一个迭代器对吧,然后接下来那么咱们现在。
05:07
那这里你给我拿过一个这些东西过来,那么咱最终返回的是不是应该也是一个迭算器呀,你以分区为单位进行处理嘛,你把分区为单位,你把分区数据给我,那么你是不是应该到时候返回的是我们这一个分区数据啊,而且这个返回结果对吧?那么人家有要求什么的,是不是也是可迭代的,是不是也是个集合呀,对吧,那我目前为了编译通过,我现在呢,你给我什么,我现在呢返回什么对吧?然后接下来,那么咱们现在在这里对吧?这个东西是不是相当于我是一个分区的数据啊到这啊,我现在这里是不是应该以一个分是是一个分区的数据啊,对吧?所以说我在这里对吧,是以我们这个分区对吧为单位,以我们的一个分区为单位,来对我们的数据呢,来进行一个处理,这样呢,就相当于现在是一个分区,那么你现在在咱们的分区里边一个分区是不是获取一次我们这个链接啊,对吧?所以说呢,在咱们这里边我应该干什么呢?我应该去获取我们这个链接,对吧,把这个操作往这拿。
06:07
啊,对吧,那么咱们可以直接去调用我们这个my red YouTube点,然后get get.vr这么拿到了一个我们的get客端,然后接下来在咱们这里get客端点close,养成好的习惯,那不要说老师我先把业务写完,我最后我想着把它关掉,只要创建的时候你就想着先把它关了。对吧,这个呢,我们现在对吧,完事了对吧,就是说现在啊,已经把这些东西拿到了,那么拿到之后啊,那接下来咱们呢,现在是不是得对我的分析数据来做一个处理啊,那这块怎么来处理呢的,怎么来处理啊同学们,接下来我现在在咱们这里边怎么样的进行处理,我现在拿到一次咱们这个链接了,然后接下来呢。接下来呢,迭代器是吧,对谁对咱们迭代器里的数据来进行迭代对吧?咱们现在要对我们这个分区的数据对吧,来进行一个遍历,对那么怎么遍历呢?杰森啊不对,IR点我们现在这个缝,每次遍历得到的应该是一个杰森对象。
07:18
对,每次遍历这个时候呢,你拿到这些对象,然后接下来拿到这些对象之后,咱们是不是可以根据这些对象来获取好多东西啊,这个代码我再写一遍对吧?咱们可以根据我们的这对象对吧?对象来获取咱们相关的一些属性,那么都需要获取什么呢?大家想一想,你现在要想去咱们这个操作,我们这个对这个ready k的话,你是不是得告诉我当前的日期。对吧,然后你是不是得告诉我的设备ID啊,你得把这两个这个给我拿过来,所以说呢,那么咱们现在在这里,那应该是第一个获取我们的日期的获取日期,那第二个呢,这个日期啊,那第二个呢,是获取我们这设备ID啊,获取咱们这个设备它的一个ID啊那么怎么获取呢?通过Jason object.get咱们的个string对吧,String,那么这里呢,有一个DT对吧,可以把咱们日期啊给获取到短日期回到,然后获取到我们这设备底和它上面是一样的Jason object.get咱们这个Jason object,然后接下来这里应该是一个common吧,对,然后接下来点二咱们的get呢,我们的一个string的get string,然后这个呢,应该是我们的m mid,然后接下来这个呢,是我们m mid定义变量来接收一下啊,来接收一下,然后接下来咱们是不是得拼接我们这个操作的K呀,对吧,然后接下来咱们呢,要拼接我们的操作ready。
08:44
它的一个日活K对吧,K,那么这个呢,尽量啊同学们写一次之后呢,你可以直接把它复制过来对吧,把这个呢拿过来CTRLC对吧,把这个拿过来CTRLC,那么拿出来之后呢,那咱现在呢,可以往里放了呗,对吧?那么这时候怎么来放呢?那应该是这口端点S。
09:02
ADD对吧,SAD对吧,那么咱现在呢,还是啊往这里来放,一个是duk,那么另外一个呢,是咱们这个midd对吧?那么本身它会返回一个结果,这个返回结果是什么呢?这个是我们现在is first对吧,Is first对吧,那接下来同学们这里没有过滤了,咱们不应该根据我这个处或者false做来进行返回了,那这个东西该怎么处理呢?同学们。判断一下是吧,那如果说我现在呢,在这里,你给我返回一个东西叫什么is the first,如果要是咱们这个在这里放到括号里边,如果等于等于我们的EL,那说明什么?说明啊,咱们现在这里边应该是的是首次登录吧,对吧?如果说现在等于E的话,说明以前没有的是第一次对吧?这里边把这个机子拿过来,说明是第一次登录啊,说明是第一次登录对吧?那么如果是第一次登录,那怎么办呢?
10:01
放在哪,是不是找个地方它放起来,我是不是先把它找一个集合呀,或者找一个这个缓存把它放起来,对吧?所以说呢,那么在咱们这个循环之前呀,那我在这里我呢要定义一个集合对吧?用于什么,用于存放对吧,咱们呢当前呃,用于存放当前我们这个采集周期中啊或当前分区中吧,因为以分区为单位嘛,优于存放咱们这个当前的分区中第一次的登录的我们这个的这个日志吧的第一次登录一日志,对吧?那么这个东西如果要是我们没放的话,那那就来呗,对吧,这就来创建一个集合对吧,创建几集合,那这个集合呢,我要添加的话,我习惯操作的能可变一点,对吧,因为你想一想,我是不是要把这精力不停的放出去呀,你要用例子的时不是不太合适对吧,那可变的应该是什么?例子buffer是吧?啊例子buffer对吧,那咱现在呢就来。
11:02
又一个list buffer对吧?那么这里放的什么呢?这里放的应该是我们的Jason object对吧,Jason object,然后点VR对吧,点我们现在呢这个VR对吧,那么这里它呢,其实是一个我们这个list buffer对吧,This buffer对吧?然后接下来那么咱们现在呢,那么如果说啊,有这么一个集合了,如果是第一次登录,那么例子buffer往里放数据应该有个方法叫什么来着,A pen对不对?A pen,然后把谁呢?是不是可以把咱当前这个杰森给它放进去啊对吧,可以把它当前的这个阶论下放过去对吧?呃,然后接下来呢,那么咱们呢,整体啊,那这样呢就完事了对吧,整体这样就完事了对吧,然后接下来那么咱们现在呢,那这里其实我也可以干什么呀,我也可以给他去做一些我们这个时间的一个设置,对吧,你像在我的讲义上,同学们其实这块呢,这个时间你如果完全这么设置,其实有问题对吧,你看我的讲义上,你通过。
12:02
咱们这个对吧来判断是不是存在,然后接下来呢,那么你拿到这个东西之后,你是不是马上就设置咱们当前的一个社交时间呀,但这块呢,其实我这写的并不严谨,对吧?同学们,其实这块咱们现在写的时候就这样,其实不太严谨的呀,对吧?因为你这样的话,那可能每一次我这个分区的数据过来,每一个分区,每一个采周期的每一个分区数据过来,我都要去改变一下,对吧?所以说咱们设置我们这个时间呢,那用我们上这种方式对吧?用咱们上面这种方式更好一点,对吧?什么时候做呢?对吧,把这个填加完之后,他返回一个结果,然后接下来设置K的一个失效时间,对吧?如果以前没设过,咱们设,如果以前设过的话,咱就不设了,对吧,然后接下来那么经过咱们这个循环之后啊,那对我当前这个分区的数据呢,我做一个处理了,而且把咱们符合条件数据是不是都放在我们这个例子buff里边,其实这个例子buff它是干什么的,是不是相当于我们这个filter的list,是不是已经过滤过的呀,对吧,那么你现在最终你是不是应该把咱们这filter list都给它。
13:02
返回去怎么返回呢?别忘了人家给你传过的时候,当前分析的数据是一个可迭代的,一个叫迭代器,对吧?那你现在返回的呢,原样返回其实不太合适了,那应该怎么办?是不是应该是这样,在关闭的时候,然后接下来我把这个东西返回去,但是呢,这个类型不符合你本身是个例子,是个例子buff分,人家要求是可迭代的,所以说在这里怎么办呢?To,咱们这个actator对吧,To editator转换一下对吧,然后接下来整体这个操作做完之后呢,那么第2VA2一下,Do点一下,那么这个是什么呢?这个是我们这个filter的stream do把这个拿一下啊这个。好了,那这样的话呢,关于我们现在啊,这个过滤的第二种方式,对吧?过滤的第二种方式,那么这个呢,是对吧,其实是以分区为单位来对我们这个数据呢,来进行一个处理对吧?来对我数据进行处理,然后看到这块啊同学们,我我看咱班有好多同学在问我问题的时候,然后呢,你们把一些提示啊,或者注释啊,你们这个设的颜色,对这个其实无所谓啊,可以自己个性化设置对吧,但是呢,对我不知道你们是不是习惯了,对吧,比如说你像昨天,昨天谁问我问题的时候,你把那个的注释弄成红色的。
14:23
对吧,就一看这注释是红色的。对吧,就就就是我觉得这个看着是不是就是一般红色的,一般我我反正看他这么多年啊,一看到红色我就发怵对吧,我觉得报报错后,我研究半天,我说这怎么把有错代码给我了,后来一看啊,这是注释的样式是吧,我成红色的对吧,而且呢,这个东西大家注意啊,这个尽量的稍微对吧,这个正常一点对吧?比如说我们现在可以自己设置一个的背景图片,我看咱班也有设置的,对吧,但你设最起码别太乱对吧,你看起来清楚,对你像这个咱们还好对像以前在炸海馆有一个哥们背景图片设什么呢?他对天文学比较感兴趣,设的是个星空,就是宇宙的那种对吧,然后后来问我问题,我说这这这,我说这这什么对吧,他也不认识,他写代码就应该是背景格特乱了,我说这我这这啥呀,他也得把这个图片这这代码拷贝出来,CTRLC,然后呢在这里,然后CTRLV,然后再告诉我老师这是什么什么,我说你这是何苦呢,是不是对吧?哎,所以说大家注意啊,你在开发的时候,你可以设置一些对吧,什么么样式啊,你自己个性化的东西对吧。
15:27
但是呢,所以说的过去一些啊,尽量我觉得红色的话,如果说在你们这个这个这个这个项目的时候,对吧,那应该对吧,这个如果尤其是和别人合作的时候啊,尽量少少什么一点是吧,虽然说是你自己用,但假如说一开要让你做一个,呃,这个代码分享或者代码review对吧,那么这个时候一开红色的大家觉得可能会较不舒服是吧?注意一点啊,行了,那这样的话呢,咱们这个过滤操作完事了,过滤操作完之后呢,那我也要测试一下啊同学们,那么大家想一想,我现在如果想测试,那我想看到效果,你们觉得我应该做些什么事啊,你们得帮我把这个东西,这个咱刚才咱们写的方法我得保证啊,我每写一个功能,这个功能都是可以通过的,都是正确的,然后咱们才能往下进行,我现在想测试一下,我想测试大家想想我在输出对吧,那输出的时候我是不是输出的这个这个抗的呀,然后看的效果是不是应该是逐步减少的呀,为什么逐步减少,这个能理解吧,就是说我原来这里边啊,这是这次red里边对吧,有一个集合短S集合。
16:27
这赛里边什么也没有,就是大家都没登录过对吧?那你现在模拟生成50个设备登录,那你想一想你第一个采集周期,那你想这50个设备对基本上就可劲往里放呗,短来一个设备放一个,来一放一个,然后假如说我现在第一财数器里边已经放了20个了,那么你再生成的时候,大家想一想,这里边是不是有可能在咱们这个生成的我们的数据中是不是就已经有重复的了,对吧,你可能就放了十个,然后再往下,你可能各放了八个,那么再往下呢,那你可能对放的更少两个对吧,直至什么呀,直至咱现在对吧,哎,这个50个都有了对吧?所以说你看的应该是越来越少的效果,对吧,那我现在呢,要想看到这些效果的话,同学们,我是不是应该去瑞把这个东西清一清?
17:09
对吧,如果说你要不清的话,那你想一想,你现在是不是我这里边这个数据是不是都是重复的呀,对吧,放不进去嘛,对吧,所以说咱们现在呢,来到我们这个red中对吧,没顺的时候呢,拉哨一下对吧,然后case星对吧,K星对吧,那么当前目前这里没数据对吧?然后接下来咱们现在运行效果。那咱们现在呢,把这个执行一下。耳听啊。40条数据对吧,现在就少了对吧,然后现在呢更少,然后大家呢,可以来到哪呢?对吧?可以来到我们这里对吧,查看一下当前呢,目前咱们这里边这个数据对吧?现在是47个啊50个,那50个的话,那现在他应该是进不来了啊,50个的现在进不来了,好了,那么咱们现在呢,这个就完事了,把来停一停啊,把来停一停啊。
我来说两句