00:00
好,代码编写完毕,我们接下来就可以创建函数了啊,那在have当中啊,我们用户自定义的函数啊,一共分为两类,一类叫临时函数,一类叫做永久函数,它俩有啥区别呢?那临时函数呢?呃,我们创建完之后呢,只能在当前会画去使用,那这个会画关闭,那在下一会画这个函数就没有了啊,这是临时函数,那永久函数呢,那就是只需要创建一次就可以一直使用啊,那在这儿我们要创建的是永久函数啊,那永久函数在创建和使用的过程当中有一些注意事项,那接下来我们去看一下啊,那先看一下它的创建步骤,那第一步我们需要先打包,那打完包之后呢,我们需要将其上传到HDFS的一个录径下,注意啊,是传到HDFS上啊OK,那接下来我们再继续往下进行。那呃,传到HM之后呢,我们就要去执行这个创建函的语句了啊,那简单看一下创函数的语法是什么样的啊,来,首先create function是不就串建函数对吧?那后边这儿要写的是我们这个函数的名称啊,Explodera,那后边有一个as as后边呢,需要加上啊我们这个udtf函数的全类名啊,OK,那再往后呢,啊,有一个U增这样的关键字啊,那U增这后边呢,需要呃,接上咱们的炸包在HD上的路径,OK,这就是创建永久函数的这个语法。
01:23
好,那创建完毕之后呢,我们就能够正常去使用了啊,然后在使用的时候也有一个注意事项啊,永久函数呢,它和我们的一张表一样,也是会属于某一个库的啊,比如说举个例子啊,假如说我们是在机贸这个库下边去创建的函数,嗯,那如果说我们柚子机贸切换到经贸库下边了,我们就可以直接,呃,比如说select explode接算瑞可以直接调用这个函数啊,但是假如你在default库里边去使用j Mo库下边的这个永久函数,那就得怎么办呢?那就得加着这个库名的前缀,也就是你需要select j mo.explo它跟一张表一样,是会属于某一个库的,这是我们在使用永久函数的时候呢,呃,一个注意事项啊,OK,那接下来我们就把这个函数创建出来,然后呢,做一个简单的测试啊,那现在我们先打包。
02:17
来找到没问这个插件找到package来双击一下。好,已经打包完毕了啊,那我们在target当中找到我们所需的JA包,CTRLC,我给它放到桌面吧,那这样一会我们好找啊,好,那包已经打好了,那接下来我们要做的是什么呢?那是不是需要将这个包上传到HDFS的一个路径上啊,对吧?那现在我们打开这个HDFS的web界面。来hi do吧,1029870来往下翻来,我们进到呃这个目标路径,来看一下我们需要传到哪个路径下,是不是需要传到user have JS这个路径下呀,对吧?那我们去看一下有没有这个路径,User have这次没有,我们这儿可以自己创建啊,呃,咱们创建一个jas,然后回车。
03:04
啊,Decor啊,那这次路径咱们就创新完毕了,那接下来把我们刚才的炸包上传上来。找到桌面。啊,找到照包,然后点击upload。好,这个包我们已经传上来了,那接下来我们继续啊,那再往下呢,我们就可以去执行是不是创建udtf函数的语句了呀,对吧?那我们来到data grab这个位置,然后打开呃,把这个呃创建函数的语句放在这儿啊,那块之后呢,我们有些地方需要去修改一下啊,首先第一个就是全类名在这呢,我们最好去复制粘贴一下啊,来找到我们的类右键啊,然后一个copy copy reference。完之后呢,来到data和RI当中啊替换一下,嗯。CTRLV,那还有一个呢,就是后边炸包的路径对吧?呃,路径没问题,主机名做小号,大家要注意user还有这但是这个包名应该是不一样的啊OK,我们去拿一下自己那包名啊呃,从那儿拿就行。
04:00
好,那现在我们来到data GR,然后CTRLV,好,那这就是我们改完之后的创建函数的语句,那现在我们执行一下直接回车。嗯,我们稍微等一下啊嗯。OK,那现在应该是已经创建完毕了,对吧?创完毕之后呢,我们可以查看一下这个函数啊,我们可以执行一个受呃f func functions这样的一个命令啊完了后边呢,咱们可以通过like进行模糊匹配,那这边我们就匹配呃g son就可以了,那现在咱们回车走,那注意观察一下啊,那这里边是不是就出现了我们刚刚所创建的诶j mo.explode杰森的函数啊啊对吧?那么OK,现在我们先做一个简单的测试啊啊,比如说我们select一下啊这个呃,它叫什么呀?叫做explode接森瑞对吧,E pro。杰瑞然里边比如说我给他放一个一,大家注意啊,那通过这个我其实可以测试一下它那个校验参数逻辑是否是正确的,对吧?那那因为咱们呃有要求,这个是不是只能传一个参数,并且得是死string类型的呀,对吧?那我要这么写的话,他这是不是应该是int类型啊,对吧?我看他会不会报错啊,来刷新拿来看一下,那这里边是不是已经报出来了说啊这个函数只能接收死缀类型的参数。
05:14
没错吧,啊,目前看这个参数的校验逻辑是OK的,那他对数的处理逻辑是不是正确的呢?那这个一会儿就得用我们真实的表去进行测试了,对吧。
我来说两句