00:00
这个是我们要搞定的初始化方法啊,这个呢,核心的逻辑要记得住,那接下来更重要的是这个process方法。对吧,我们所说的来看一下这个process方法,它接收的参数。是不是一个数组,也就是说它默认的这个炸裂函数是不是可以接收多个参数?哎,那xlo它肯定也是这样写的,但是呢,我们发现X我们传的是一个参数。对吧,因为无论你传一个参数,两个参数,它这个方法真正的调用的时候,他把你传的参数做了一个什么。封装,封装的一个数组里,按照我们之前所定的业务逻辑,我们是要实现这样的功能,也就是说要传两个参数。第一个参数呢是数据,第二个参数呢是分割符,那这一块我们应该怎么写。首先是不是应该把这两个东西给它获取到?对不对,对吧,好。
01:02
第一步,获取。数据,然后第二步获取分割符。对吧,啊,两个这是一个数组。这是一个数组,获取数据是第一位传进去的,所以应该怎么获取?行,但是呢,它是熬见的。我们要把它干什么,转成stream啊,点to spring一个方式啊,点to,然后呢,Out ctrl加回车得到一个什么。数据叫data塔,可以吧,啊,名字叫贝塔,好,同样的X。一。点to string是分割符,我们把它叫做spli。K对吧,切分的一个K还是K切分好,接下来第三步是不是你这两个都拿到了,在这里边要切分数据。
02:00
好,前面说句叫贝塔点split,把split key传进去,好,奥加B得到一个。What?对吧,好,那接下来我们是不是这个was是一个数组,Was是一个数组,那我们是不是希望把was里边所有的东西给它干什么。写出去,类似于在map方法当中,你是不是对数组进行循环,然后context点。对吧,那这个里边也一样啊,第四步就是写出。写出同样的,对啊,我这样,我写一个病例,写叫变例,写出what,这个循环是不是一定跑不掉。接下来是不是把这个过程要写出去。对吧,把这个word要写出去,那问题来了,你之前有一个contact,我们看一下这个参数,好像只有我们自己传进来了,全球也没有什么contact。
03:05
对吧,初始化里边也没有,那我们到要到这里面去找,写出了一个方法往下找它是谁呢,这个。另外一个方法叫forward。他说把这个数据。数输出一行数据到。收集器。这个就是我们之前所说的,你那个环形缓冲区,环形缓冲区怎么命名的,最后也不是一个connect对吧?啊命名的,因为就是类似于一样的,那这块呢,我们要调用这个forward的方法去干什么事。写出来在这块,也就是说最后在这里边我们应该要调用forward来写出这个。What?啊,也就是说这个方法呢,就是我们要做的什么,写出数据的。操作。
04:00
Forward啊,系统提供的就类似于你用的啊是一样的,好,那大家感没感觉到这个前后你想一想初始化方法,再想一想这会不会有问题。我们定义的这块是一个什么。集合写出去是一个。Spring类型呢,不匹配,能听懂啊,类型不匹配,也就是说写出的时候,我们也得写出去一个什么。集合,那集合我们是在这里边创建呢,还是说第一个全体的。全局的一个就够了吧,好,那集合我们在这来一个什么。这个方法不是这个吧,好,那我们就不用写,那叫list list呢有一个分行,分行放什么string啊,放string,然后呢,这个叫list啊,数据的集合对吧,又一个什吧list意思好,接下来过来的时候,这个数据不好意思,你不能直接写出,应该还少一步。
05:17
应该要将数据。放置集合对吧,啊,集合再进行写出好,那这个地方呢,就是data list,点把这个word给它放进来。那这样写了会不会有问题呢?我们用了一个全局的。应该把这个收了分收到那。哪个方法放到外面?我有一个问题就在于这这个数据集合应该要干啥?要清空吧,啊要清空的,那你看这个,我们再来分析一下这个process是不是满足我们所说的一进多出,我们进一条出去。
06:12
也就一个方法调用一次,这个for调用多少次。是不是N次对吧,而且这个地方这个就是我们进来的一次数据,假如说你进来一个哈逗号word好我写出去要写一个hello出去,同时还要写一个什么word出去,出去这一块呢,就体现了我们那个一进播出。啊,一进读出这个时候呢,我们把这个核心的process方法搞定,其实我们想的一进读出开始我们想自定义的时候,应该好像这个东西很复杂对吧。其实因为你看啊,因为你是继承的人家的一个类,所以呢,他把核心的一些东西写到哪儿,需要你关心吗?他提供了一个蜂窝的方法,你按照这个方法来写就行了,需要你关心这个东西写到哪了,对吧?他说了一个收集器,你需要关心这个收集器在哪了。
07:08
不需要啊,也就是说你只关心的是什么。这一块我们所写的都是什么叫业务逻辑啊,所以呢,你自定义很多东西,你想想看你的map跟reduce什么。你写的那个map方法,写的那个方法跟系统有什么关系?他提供了一个入口叫contact给RA跟系统对接上来了,但是你核心写的一些东西还不是你的业务逻辑嘛,你想那个ma怎么处理,你在那做是想做哪家,还是想拼接,是不是你决定的呀,你决定的东西就是业务逻辑啊,其他的事情呢,框架帮你搞定。这块呢,就是我们写的是业务逻辑框架呢,帮我们解决这个事情。啊,帮我们解决这个事情啊,至于他们俩是怎么关联上的,需要我们去手动的去关联吗?不用,你只要保证这个类型干什么一致,它就能关联上。
08:03
能懂这意思啊,这个是我们所写的这个自定义的一个UDTF,这是process。
我来说两句