00:00
好,那接下来呢,就到了这个本个项目当中啊,最难的一个知识点了啊,自定义udf和自定义UDPF啊也是下面的一个亮点,我们来看一下。怎么来解析,这个有点。好,这个呢是原始的世界日志啊,长这样,服务器时间对应的建设啊,里面呢,对应的三个K,好,那我们要定义一个udf函数,传入进去一个P,那就得出对应的Y流值。啊,什么含义呢?我们要实现一个这么一个udl函数,U自定义UDF里面的方法名称都叫US,那在这里面我们传进去的是一个拉那Y,就是整个欧亚来程的一个字段,时间字段传进来。
01:00
同时我又传进来,这是什么呢?对应的CM也是公共字段里面的所有P值啊,公共知道所有P值传进来到这。好,那得出来的这个string X,那它其实是未来的公共字段,拼上事件字段以及事件名称,还有复习时间啊,我们先不管这个,我们现在呢,就是要用这个函数去解析。这款。啊,那怎么写呢?好,既然你传进来的这是一堆P,那我是用逗号分割的,那就要把它切取出来,放到一个数组里面。啊,等待后面去循环,便离它一个一个的去取值,啊放到这个速度好,那往下,那下面这个line的整体。
02:04
我必须把它切开,切成一块是浮力时间,一块是接下。那就用竖键将这个传进来的麦Li是不是就得到了服务器时间和节省,嗯。那这两块OK,那再往下,那接下来我就根据切割后的数据获取接制数据,然后创建一个真对像,那什么意思呢?我切割完之后,从这到这,它本身就是一个建制对象,也说切割完的数组一。这里的数据,那它既然是一个接身对象,我就又一个接身对象啊,把它封装起来接对象,那有了这个健身对象之后。根据这个竞争对象传入P值CF。那你这个对象有了,我传进去CM就能得出下一个截身对象,这个接身对象里的内容全部是公共制造。
03:05
啊,那这个对象呢,我叫CM先生。拿它,拿到它之后,我还有上边的对应的所有的P。那我就循环便利这个P向这个里面去取Y轴值,是不是就取出来了好。那接下来我就要循环遍历这个G,算K变离它,然后获取这个CF中的Y轴值,那得出的值再通过这个杠T拼接在一起,那拼接字母串用的是。Spring builder啊,Builder或者使buff啊都行,那好,那得出的结果就是经过这个in.F处理,前面这部分全部是公共制段,比如说这块。之后又拼接上。这是这一块的世界之大,我并没有把它打开啊,记住,我并没有在这解析,因为这块留给UDTF去加力。
04:10
好,那后边还剩一个服务器时间,比如说这一块服务器时间,因为在这的时候已经切割出来了,直接拼到最后,那这个拼接过程就用的是。事件啊,对的好,那这就是我们整个udf函数的一个作用啊,它负责将公共字段解析出来,同时再拼上时间字段以及复习事件。好,那剩下这个这块你先不考虑给它留给UDTF,好,那现在呢,我们就来制定一下这个udf函数。那首先呢,要创建一个那个工程啊,还有function函数。难受。
05:00
这。就打开了。有这么一个动作,然后又一个product。Nice。Come,点爱会不?Nice。好,创建成功,那创建成功之后,我要向这里面添加这个。com文件。那框文件呢,这里面只用到了一个have啊,只用到一个have是1.2.1拿出来,那下面呢,对应的是这个插件啊打包插件。拿回来。这打个插件很有用啊,在企业开发的时候你可以用。好,打一下。
06:02
那接下来继续,下面呢,我们就开始自定义udf啊,Udf之前还有这个报名啊,创建了一个报名udf的报名。没事。右键。E。好,然后再把它这个类名,我们要创建的类名拿过来,你说创建的是一个base file EDF。好,有了它之后剩下的事我们开始写了,制定一个udf的步骤,定义一个类继承啊udf啊u.F那导方比较错了啊,第一个OK,然后在这里面重写它的eva的方法啊,那我们这方法呢,是它的个啊,返回一个4G啊EE的。
07:02
好,传进去第一个值是Y,也是整个。建设数据对吧,啊,咱们建设数据来发了行吧。好定一个时间,然后接下来在里面再传一个杰森K的。一出吧,应该叫j sonpp斯,杰森P斯,然后这啊一个string类型的杰森P斯,那这个KC里面用逗号拼接了所有公共字段的K,对吧,好。啊,在这边。那下面呢,首先我们来处理一下它。获取所有地。啊,那这里面包括什么midd啊,UV啊啊等等一堆一堆内容,那怎么获取呢?尖3k string点切割,那这里面我们用逗号切割。
08:13
好,那这个呢,就是金森。第四。那获取呢?它完事之后,下边我们再来处理它,那它又是什么结构呢?它是line等于服务器时间竖线啊,是它,那这里面我就要对它进行切割啊,那就是line.split。斜杠斜杠竖线对吧?啊,因为这个竖线呢,切割它是一个需要转移一下,OK,那这样呢,我就来一个这样log这个问题,这里面的数数据就得到了。
09:03
啊,那这里面第一个值是伏习时间,第二个值呢是J,那这里面呢,要对它进行一个合法性校验。教练,那接下来的话1LOVE。点less不等于二,那我是把它干掉了啊,或者或者三角要加验谁呢?我校验这个love看才是一,也是这个杰森,它要是空了,那我是不就没有一一解析了,嗯,那好,那这里面就是string u.is block判断它这里面的这是。如果没空。那我就。那扔掉它返回一个公串啊,是这那也是,或者它不等于二,或者它等于空,我就全部扔掉,这完成,如果校验通过的话,那也说这里面我就有了这么一个阶。
10:11
那我就对他创建一个对象。对谁呢?对爸,我困难人一。对吧,啊,因为他本身就是一个杰森,那就来吧,啊,另一个杰森不在。啊,那接受站里面传的就是那刚才是一。那就拿到了这个继承。看一下。好,那就相当于目前到哪一步了呢,往上涨。
11:01
这个图也就说现在呢,相当于对这个数据已经用竖线切割开,切割成与接身数据,然后呢,并对列数据创建了一个GS对象啊,然后下一步我就要取出公共字段的值,对吧,那我就要传进去CF。那CM简单了。目前公共字段的。现实对象。那怎么获钱呢?肩上有大的。第二。Get get里面传进去噻。诶。我是错了,盖的阶上应该是。
12:07
健身对不对啊,传进,因为我们获取的就是一个健身对象,那传进去了就是这样。好,那这个呢,我们就叫CMJ什么J。好,那拿到了这个工作对象之后,剩下的事我们就要循环便利所有的祭司,然后向这个接身对象里面去传K,得出对应的Y流值啊,循环概例啊循概率。来了。负二啊,那这里面呢,循环便利,接3P4。它点,但好,那我从这里面一个一个的去取这个这乘KD的值,那就I,同时你可以推一下啊去个空格,OK。
13:08
那这样呢,就得到了这个P啊,这成P也行。减上去OK,有了它之后,下边呢,我就从这里面去取值,那取值的话来判断E啊CM。第二。如果有这个P有这个。如果有那个K,那我就获取里面的值啊,那有的话我怎么获取呢。CFJs.get get什么?那这里面嗯,看到啊,呃,首先这个有,如果有这个K,那我们就要获取这个对应的值了,那值的话就是。
14:05
这是他的,就是他。好,我获取的值,那获取这个值我是要放到。一个spring build里面把它拼接在一起啊,中间用杠T分隔开,那这时候你需要一个build啊,你在前面又一个build。需要啥就穿点啥好,那那的是at me吗?你们最喜欢的?好,那这里面呢,就是点啊,拼接上第一个值啊,然后后面点。杠T是这样吗?啊,就用这个杠G将它们分割开,Else,如果没有过取到,那这一块点和派直接杠T加位知道吗?啊,那这样呢,就把这个所有的公共字段循环电立好之后拼接在一起了,那光拼接完这个公共字段还不行啊,这是工字段,那就说我现在呢,只是把这部分处理完了。
15:20
那么下边呢,还有这部分就是整个事件,还有一块是服务器事件。那这一块儿来吧。那在这个循环编辑完之后,也是公共时段拼接完了,下面这块来处理事件时的和夫妻事件。今天。好,那来点我看看,那首先要获取这个时间字段,那这个四四间字段是不是在这个最外层这个电阻带上,你看一下它是在最外层这个间在隔带里面,那它对应的P是ET,知道吧,好ET。
16:09
你看这块笔是杰森怎么?接三角债的点钙呢?直接就是string,那这个是是ET和ET啊,然后点加上这个杠T一个,还有然后点PA拼接上服务器的时间,那服务器的时间我们在这地方切割的时候,这个拉方断是零,是不是就是对应这个服务器时间了啊对这个拉。零。啊,时间,然后第二杠TOK。
17:03
那这样呢,这个就OK了,拼接完成,那最后别忘了返回return return呢是不是拼接好的这个FB啊啊,因为它反值是使G嘛啊,那这块呢,就是点to使啊。OK,那这样就完成了,那完成之后呢,我们稍微捋一下啊一下这个思下思路好,首先呢,我们要定义一个一函数啊,那这个函数呢,是有返回值,据输入参数第一个Y对应的整个实间类型啊,这个所有的这个进身数据都在里面了,包括复习时间,那同时呢,又把公共子段的所有的PC传进来了,只不过呢是用逗号分割。那好,那这里面我们就优先先处理了一下它。把它里面用逗号分割的。T全部获取出来,给它截取出来,放到这个阶层P数组里面。
18:04
接下来我们用来处理的是这个line,那这个line呢,里面包含两部分,浮力,时间和节水,那对呢,又出现一切割。那就得到一个神数组,那神数组呢,对它进行一个校验,那这里面判断的是一是长度必须得等于二。啊,然后同时这个第二个也是健身那个内容不能为空啊,否则的话呢,就直接返回一个空泡啊OK好,那前面准备工作做完之后,那剩下的事呢,就是先用一个接身对象,那这些健身对象呢,他是谁呢?他就是切割完之后这块的这个对象啊,本身就是好,那这个获取完成之后。接下来通过这些对象传进去对应的CFP值,也就说公共字段的P,就能得出公共字段的切成对象。
19:02
然后我循环便利所有传进来的公共车段的P。取出对应的Y流值,公共字段的Y流值啊,通过这CF接存取出来啊,然后用杠T分割啊好,那它处理完之后,最后别忘了,其实我们还有两块一块呢,是事件制造。要绘出来,同时还有一块是复习时间,把它拼接在一起,最终返回去就结束了啊就这么一个过程,好,那下面呢,我们再验证一下我们这东西O不OK啊,那怎么验证呢?啊,测试一下对吧,把这条代码拿回来。这是一个代码啊,大家看起来是比较多是吧,看看在外面的。
20:01
过年。哎。在对了啊嗯,好,那这个粘过来之后啊,那你看一下它是什么,首先这有一行慢。那外的话,你看前面这是服务器时间竖线分割,然后后面都是这个形象形象形象其实什么呢?是不是转移啊啊,其实是一个转移啊,过程转移啊。啊,一转后浪啊,就是一个转移,本质上来说它就是一个接身数据啊好,然后后面呢,这只是用的我们自己定义的这个base fair 0.f也是定义它自己这个对象啊好,定义完之后,然后点一般it第这里的方法传进去这个lie,同时又传进去一堆key啊接着K,然后看看能不能得出我们想要的结果,你选一下。
21:11
OK,解析完了,那你看一下这里面传进去mid,那midd对应的就是M7856 M7856,你传进去UIUID对应着U7U8739 u8739。啊,那这个顺序就严格按照你这个K传进去的顺序取出来,那好往后看,前边呢,都是公之段到这,然后中括号也是事件数组,往后拉事间数组,这都是事件数组的内容。好找。一直走到这儿。事件数度结束,最后一块服习时间啊,那后面我们再对这一块再用UDTF,嗯,把它炸开啊,获取到我们想要的这个东西啊,所个udf负责处理公共值段,Intf负责处理事件值段啊OK。
我来说两句