00:00
那如果说我们自义的是udf函数啊,Udf函数我们要继承一个类,因为你自定义什么功能,一定要跟人家框架产生关系啊,啊所以呢,你要继成一个类啊,记成一个类,然后呢,你要写一下这个函数。这个函数呢,并没有那个什么at overread这个关键字标识,它是主写,但是这个名字你必须要这,因为它的系统函数里边,它是通过这种方式来回调的。通过这个东西来回调的,能听懂啊,通过这这个方法来回调的,也就是说这个函数谜就不要写错了啊,不要写错了,写完之后。添加下方。就是你要打包,因为你写在ideal里边,他能找到吗?找不到了肯定是要打架包啊,扔到我们集群,扔到我们集群,然后呢,添加的时候。Linux加了一个pass写全路径点后面不是一个点加嘛,对吧?啊这样方式来解,创完之后可以创建什么函数了。
01:01
创建函数的语法我们来看一下,叫create temporary是临时的,而且是可选的,对吧,假如说这个函数呢,你就当前业务当中调一下。你就干什么用临时的对吧,啊完事之后呢,你退出这个窗口就没了,你自己就注销了,就这意思啊,临时那个就当前生效好,然后方式这是必选的吧,啊创建一个函数,然后。库名可选,呃,没写库名的时候用的是当前库,不是默认库,用的是当前库,就是你不是use了一个beforet use一个have吗?当前你在哪个数据库就用的是哪个数据库。啊,是哪个数据库啊,那既然他提出了这个点,那我们就思考一下,既然你创建的这个函数名有库。那是不是跨库不能用呢?是不是有这种可能性,如果说他跨库可以用,那你加那个库名意义不大,对不对啊,到时候我们测一下看是不是这个内容啊,如果说哎,他跨库可以用,我们写的时候就知道了,哎要不要这个库名啊,这个无所谓啊,对吧?啊,这个因为他提出来一个点嘛,它这个语法给的是库点,那我们就会思考这个问题。
02:14
对吧,啊会去想这个问题,好,然后是as class名字就是类的一个全路径名啊,全类名这意思啊,你要删除的话就重啊创建,可但是这个就还好,如果说你真想删除的话,你就创建成什么。临时的对吧,让他自己去删除就完了啊,让他自己去删除。好,这里面有一个注意事项。可以返回到,但不能返回成是过。啊,它这种函数呢,返回值必须要有啊,不能是word是这个意思啊,这个呢是它的一个步骤,然后呢,我们再来写一下啊,我们再来写一下,然后呢,这个依赖我们把它拿过来。这个呢,就是汉的一个依赖。Haveccc,而且我们用的版本1.2.1吧,啊来给它拉进来C。
03:01
你们是不是到妹下载这个加包的时候就比较痛苦?网速是吧。网说好了是吗?老师给了你们一个是吗?那里边应该有啊,里面应该有。这个加载这么慢吗?我之前不是写了那个MR程序对吧。这还有那个friend to。这个任务你看还在兜里,我现在这个。电脑感觉问题越来越大。这个加载半天还加载不了,我之前不是在咱们班写过那任务吗?写过好多对吧,就是写的这个工程底下的,所以当我所有的代码都放在这个底下啊,建不同的工程。
04:04
哎哟,这个东西。能不能给点力啊?真的很烦啊,这样我重新建个吧。重新建一个这个东西,感觉这个工商加载加载很有问题,重新建一个。叫那个,呃,之前用的project,那我这个叫叫。第一次淋发OK吧,然后诶,这个是康姆抵亚的中骨。看点微博吧。重建重建不要这个功能,这个功能加载进来,呃,当前窗口这个窗口就不要了。好,这个就直接加载成了啊。这个也没有加载成功,目录都没有。
05:03
咋了今天?哎,这个好关下好还我那还来用那个了,好,然后呢,这个东西真的。你让我怎么说?那我建一个这个have杠对吧,Have-de啊DDEMO,下一步这个idea里面建工程,刚才我们是不是加了杠,你看它的这个model名字没有杠啊,你加一下啊,加一下这个目录呢,自己就加了一个杠,Finish。这个先关掉。这个DEMO你看跟上面这个东西有一点区别,看没。啊,没看出来吗。因为这个东西啊,它识别成了它的一个模块,这个东西它暂时没有识别出来,这个工程应该有一点小小的问题啊,有点小小问题,我现这啊,那怎么做呢?这样直接点开这个project这个泡沫文件。
06:11
我这点不开了,不是我这早了,重启一下,重启一下,因为这个里边它有时候自己正常的会自己会添加,因为我的应该是出了点问题,所以没有添加,当你看到这个东西没有变,没有那个右下角有那个小蓝点的时候,你在这守动干什么。添加一下,添加一个model。他还没有完全的加载进来啊,它现在加载加载完了之后呢,它会有提示啊。第Le,那我既然没有提示,我就自己敲一下对看一下,哎,Model它有提示了啊,直接出来了,等它这个加载完成。哎呀,这个开发工具给我出问题就很烦。然后用那个汉堡。DEMO对吧,还有DEMO保存好这边加载完了这边就有什么了。
07:09
有那个小单点的了啊,必须这个小单点出来,你才能继续往下写啊,才能继续往下写,OK,那这个我们就可以关掉,如果说你加了这个泡文件里边添加了这个model还没出来,你可以做什么呀?在这去刷新一下啊,在这刷新一下。他没有识别,它真的没有识别。我们先写代码,先先不管这个东西了,我们看一下能不能运行这个ID,有时候哎真不行,这个这个模块有问题。这个模块有问题,识别不了。哎哟。对啊,心态崩了呀,新建的工程也不行,等一下重建一个,重新建一个模块试一下啊,我还不能写那个了,我得写,因为防止那个元数冲突,因为用了代叫改个名字。
08:16
这个自己添加了,自己添加应该没问题,好了吧,这个好了。好,然后呢,我们把这个依赖搞半天,把这个依赖在哪。给它拿进来。在这个地方。这个依赖呢,就添加一个汉的一个原始的一个依赖就够了。保存一下,然后接下来写我们一个代码,写我们代码,那我们哪一个类啊。右键。是真的卡。Java class,然后com点,哎,硅谷点叫MYUDF,假如我就取这个名字OK了啊,取这个名字我们看到了,他要继承。
09:01
叫。它还不提示继成udf。啊,就记成udf就行。那这里边看一下。要注意一下包对吧,啊,当然咱们还好,就是只有一个吧,啊,只有一个点他没有报错。发现没啊,没有搞错,也就是说这个方法呀,它不是必须要干什么实现的,是咱们要自己要写的啊,咱们自己要写的,那我们写一个这个内容,呃,把所有的数字加五吧,啊随便啊搞一个简单的那public。然后是对返回值对吧,啊TG诶加五,那我in特吧,啊把一个int类型加五,那返回值写个in。然后方法名之前说了,必须叫evaluate eva u。返回值对吧?啊,假如说返回一个零,那它不报错啊个零,那这个地方这个方法参数,你想想来就是将来什么参数。
10:08
你函数的,你函数不有个名字吗?类似于some对吧,它的参数啊,它的参数,那这个参数呢,我用一个int类型的什么。假如说叫数字,嗯,得塔吧,啊应的类型的一个数据,然我们刚才说的是要把这个数据变成什么加五对吧,或者乘五随便,那就是得塔加五啊加五只不过说这里边我们写的比较简单,真正的你要做复杂处理,假如说按照我们之前所说的有逗号,有杠T,还有那什么中杠分割的,那你这个里面是不是要切分,切分然后放在一个数组里面,直接一次性返回啊,对吧,啊就是逻辑就根据你业务来了啊,我这块呢,没有写内容复杂的一个逻辑了啊复杂逻辑了,好,这个东西写完了之后,接下来要。打包刷新一下这个还有按还有错误对吧,我们要对它进行打包。
11:00
拍给你一般的把这个小软件勾上了。挑过测试的对吧?啊,虽然我们没有写测试代码,没有写测试代码,但是你习惯性把它勾上,因为生长环境当中是有测试代码。好呃,打包成功了,打包成功成功,我们把这个包给它拿出来,对吧,这个包呢,我给它扔到集取二加PCD OBD module到have Li啊到have有下这块要注意一下,我在文档当中呢,是写的database查斯底下,也就是说这个价包你随便放。啊,但是我习惯上还是扔到哪还不立落下啊,统一管理,统一管理这意思好,然后呢,我们把它扔进来。嗯。啊,那扔进来了对吧?啊扔到这个目录了,那接下来怎么用呢。叫爱的。叫。谁呢,把这个路径给它考一下,我们是不是知到这个录像对吧?啊把这个复制一下。
12:05
不好啊,添加了一个加包,添加了一个加,然后是不是创建函数啊的。方程C方程,然后呢,还记得吗?方程的。名字对吧?啊,当前这个名字,那这个是不是叫数字加五啊,啊,那我们接着爱。可以吧,然后as要加上什么全类名。抗点。啊,全利名应该用什么字符串,字符串走啊创建成功了啊,用字符串这个东西用字符串包裹好,那现在呢,我们就可以去用了。用了之前我记得应该有那个什么,嘻嘻哈哈是吧。那里边不就纯数字吗?哎,这个我要把这个加五,那用一下select。
13:06
Five括号对ID加入吧,From那个什么好好。67890OK了啊,也就是说自定义函数只不过说我们随便实现了一个简单的功能,那你生产环境当中这个功能就比较复杂一点,而且我们现在这个UDF啊,是一进一出。一进一出啊,要注意一下啊。
我来说两句