00:01
好,那刚才我们看到了系统呢,提供了216个函数,那这216个函数就能解决我生产环境当中所有问题吗?一定是不能的啊,不是不一定一定是不能,因为生产环境当中数据格式啊千奇百怪。千万假如说这样,我有一个自传的。我里边有逗号,有杠T,有乱七八糟的一个文件呢,传过来的数据本身就有冒号,逗号,杠T,乱七八糟东西分子。刚才的那个数据我们能分割,我们说的做波杠的,是不是里边都是以杠或者逗号杠T大家都一样的分符来做吧,现在我的数据就不是这样。我里面有逗号,有杠T。啊,还有那个什么忠告,那你高呢。多切几次,那你知道对谁切吗?切完了一次就要炸开一次吧。
01:05
因为你接下来对这个数组不能填了吧。有同学提到多切几次,应该这种想法来看一下啊,它首先呢,假如说我有一个A逗号啊B,然后中杠,那C再来一个杠T啊,这中间是杠TD。好,首先呢,我先按逗号分割一次,分割一次A,然后这个地方变成什么,是不是这样东西,这样东西在一个数组里边,你是不是首先把数组打开变成这个样。然后接下来一次吧,对吧,啊那个。中告签一次,然后再干什么,这个再切一次三次,而且每一次切完之后都是不要炸裂,因为不炸裂他的一个数组里边,这没办法吧。啊,没办法写这个意思。啊,也就是说给它炸开这个就很麻烦了。写一个正则是吗?啊也可以啊,写一个正则就类似的这种需求的,如果说比较复杂的时候,对吧,比较复杂的时候啊,或者说千奇百怪的一些奇奇怪怪的一些需求的时候。
02:07
那这个时候呢,我们。用传统的函数做不了了。对吧,做不了了啊,或者说这样吧,呃,假如说我用那个求什么,呃,加列函数啊,或者说其他的,我举个例子啊,啊,就是some吧,Some现在我们知道差一个参数吧。假如说我要类似的一个功能,我要对两列进行直接求和。当然你可以有办法说上一列,再上另外一列,然后把两列加起来也可以吧,啊,但是有时候就像我们刚才所说的,我虽然可以分步做,但是我希望一次性给他做完,因为你分步做的时候,是不是任务数就多了?对吧,那一次性能搞定这个事不更好吗?对吧,而且呢,因为我们有时候就类似于我们后面的一个项目啊,就有一个东西呢,解决不了,因为数据格式太复杂了。这里面任何一个函数都解决不了啊,非得用自定义函数了啊,非得用自定义函数了,也就这意思啊,那接下来就是我们要用到这个自定义,就是传统的它现有的一些函数呢,解决不了我们一个事情,那我们叫自定义。
03:09
啊,我要自定义,它是支持自定义的MYSO也是支持什么。自定义函数的对吧?啊,提供一个接口给你去做就行了,好,那在自定义之前呢,我们要先熟悉一下这三个东西。还记得我们当时聊的。对吧,一个叫UDF。来之前不是有人问单词吗?对吧,上次不是有人问单词叫U,什么方式udf udf呢?叫user方式。去和吧啊去和,只不过说这个炸裂啊,它有点区别,它这个T啊。Tableating,这ating什么意思,生成产生对吧,生产啊生产,那这个就是可能他的一个理解就是。
04:01
一行变成了多行。不是聚合吧,生产就扩展,就类似于这种概念,就是我们所说的炸裂对吧,啊炸裂就一行变多行,一行变多好,那重点呢,这里边的我们之前所强调的这里边一跟多什么意思对吧?它指的不是说这个函数传进来几个参数,而是说将来这个函数对。多少行数据进行处理,处理完了结果出来,什么多少行啊,指的是这个意思,那一进一出对某一行数据进行处理,对吧?啊,刚才我们看到那个它就是属于哪种。谁告我说一多?他出来是一个数组,一个数组还不是在一行里边吗。看行啊,强调的一直强调的是看行,看行,你出来的是一个数组,没错,数组里面是有多个元素,这没问题,我也承认,但是我说了,刚才强调了这个一根多指的是行的意思,对吧?那你的数组是不是放在一行里边了,对吧?啊这所以数那个斯Li呢是优点啊,它对一行进行处理啊就够了。
05:15
那类似于我们sum max,还有ABG求平均数的count,这就多进一出吧,因为你some是不是把当前一个分区里面的数据全部拿到之后是干什么,做一个求和吧,啊就说这个意思啊,好,那下来还有我们之前所用的那个什么对塔Di。它是不是串两个参数啊,对吧,但是你要注意它是属于。又多进一出啊,我说两个参数就多进一出了,一进一出吧,我说了一定要捋过来,这个点跟参数个数没关系,看行你得到第是不是对一行的数据怎么操作,然后出来了还是放在一行啊。
06:01
对,他这五分两个时间相减得到一个差值啊,对吧?看行啊,注意这个一定要看好,不要不管了啊,不要混淆,聚合函数呢,是将多个行聚合在一块,那最后UDTF呢是将一行变成什么多行啊,变成多行一定是基于这个行的一个点来的。啊,一定要注意,这个是用户的一个定义函数,包括我们现有的系统函数,我们也可以把它分成这几类,啊分成这几类,那我们这块重点要讲的呢,就是一个udf,一个UDTF,还有一个udf呢,这个东西在。Ug当中我们会用,所以到那块再去讲啊,Spaug呢跟have会对接,然后呢,它也要自定义have里面有函数啊,自定义里边的函数啊,那块呢我们再去讲,好,呃,这个呢是我们对于这三种函数的一个理解啊,然后呢,把它。
我来说两句