00:00
好,接下来呢,我们就来看一下from的拦截器,那么这个拦截器啊,它处于什么位置呢?Source China think也是在这个位置,它是有对应的这个拦截器的,那在我们这里面主要实现的功能就是在这块做一个ETL清洗。判断接身数据是否是完整的,他是不是大括号开头,或者是接身的大括号结尾,如果不是的话,直接就将这条数据干掉。哎,就起到这样一个作用哈,那自定义拦截器的步骤快速回应一下。怎么回忆一下呢?这一来你是步骤几步啊?首先定一个类对吧,定一类,然后实现一个cept接口重写里面四个方法分别是呃,这个初始化关闭单event和多event的一个处理,同时还要定义一个静态内部类build就完了,嗯,然后把它一打包上传到flu,例如包下行,那我们就按照这个流程啊来一遍哈,首先第一个呢,创建一个工程intercept。
01:07
打开idea。创建一个工程。下一步,Com点硅谷,然后。OK。OK,下一步稍等。行,那这个蓝截器啊,这个工程我们就创建完了是吧,目前没生成了啊,说话别着急,哎,生成完毕之后,那下面呢,我们需要在这里面,哎,配置上它需要的一些相关依赖啊,那依赖用到哪些啊。
02:02
啊,这是创建名一代用的这几个我先把它拿过来啊,拿过来。拿后来再解释。行,那这个一代里面包含了三部分,哪三部分呢?分别是对吧?哎,我们这里先你是,呃,要自定义这个拦截器,那肯定需要相关的架包和依赖啊,把它关联上。然后再往下,下面呢,还用到了一个阿里巴巴的一个fast身,那我们用这个阿里巴巴这个fast身啊,主要用来解析这个身,就判断这个身完整性的。是否是大块开头或者大框结尾,你说是否是一个标准的节省啊,用它来判断。那再往下呢,下面这个呢,是标准的一个打包插件,对吧?哎,你们之前在讲这个,呃,Word count写完程序之后上传到集群那个插件就是这个。
03:01
一模一样,哎,就是用它来打包的,这没啥说的哈,就说需要这么两个,需要这么两个呢,有个地方需要注意一下,看一下这块。哎,其中这个这块呢,加上一个provide,那这个阿里巴巴这个没有加,那快速回忆一下这个ma。妹妹,虽然说这个学的时间比较久啊,但是据说呢,咱们班同学学的还是不错的啊,还是不错的,那这里面听说这个provide什么含义啊啊什么含义。或外的含义呢,就是打包的时候,是不是给它打包到我们想要生成这个价包里面啊,不不打包这里面啊,就是我们在这个编译的时候,在正常这个idea里面进行编译,我们用到这个架包,但是往这个架包里面打的时候,打不打呢?不打它,我们这个架包里面只有这个。阿里巴巴啊,以及对这个代码相关的内容就可以了。没有这价包,那时没有这件包价包,那怎么办啊,哎,我们在集群上有啊,集群上有对应的这个伏蓉王1.9这价包,哎,那他就让他去集群上去找相关的依赖就完事了。
04:09
嗯,好,那其实理论上来说呢,我们这里面是分了四块啊,四块分别是第一块代码,第二块F,第三块阿里巴巴,第四块呢是这个插件,那插件呢,是用来把他们这几个拼装在一起的,那拼装的时候要谁和不要呢?哎,你这个是,那只是在编译的时候用一下,其他时候不要,哎就把它过来,他过来。编译的时候呢,我可以把这三块哎在一起去编译,嗯。行,这是一个小插曲,那接下来往下呗,往下面呢,我这里面要创建一个名,Com,这个呢,尽量复制粘贴啊,因为我后面还会用到它对应的这个全列名是吧,那时候你再自己生成。容易麻烦哈,右键。
05:00
嗯,右键pack,对pack行建了一个包名,然后呢,在这个名下呢,创建对应一个类名,对吧,我们的步骤呢,就是定义一个类,那这个类名在这呢?啊,就是我刚才说的这个笔误啊,点这个。右键。嗯,你有一个class。那第一个类这里面说实现一个intercept in。别导出包了啊,导出包了,因为这里面inter有很多个,我们导这个下的这个啊,啊导它。Out加回车实现四个方法,初始化、close、单和多OK。行,那像这个初始化啊,啊,属于我们要连接外部一些组件的时候,需要这个打开连接,然后呢,在这个组件用完之后,把这个连接啊,比如说关闭掉,类似于我们用的GDBC对吧?啊用这个,那像那个,呃,在我们这次开发项目当中,这个初始化呢,和它不用,我们只用中间这两个就行了。
06:06
啊,中间这两个什么含义,这一个呢,是处理单一门的,就相当这里面是这是一个对吧,然后这是一个拦截器过来,那你这块拉取,如果说这个SAS端我只拉取一个数据,那我处理也就是他一个呗。那我拉取的如果是一批数据,那一批集合,那我这块处理的就是一批数据的一个变化。啊,对吧,哎,你过了一个我处理一个,你过了一批我处理一批啊这块呢,我都能够处理,是这个含义,行,那在这里面我先处理单个的,然后再把这个单个的放在这里面,不就都能处理了吗?对吧,这样含义,那我单个的我这里面要干啥事啊,哎,首先搞清楚这里面干啥事。把数据拿出来对吧,取出去进行校验。对吧,就是把这里面数取出来,然后进行校验的,那只不过呢,现在这个格式第一步获取数据。
07:04
会去,那它是一个一本的格式,我们怎么处理方便呢?哎,先把它盖保底拿出来。啊,这个Y呢,你可能现在还不太熟啊,当然你可以用你自己的快捷键也行啊,我后面你们学这个SC的时候啊,你就知道这个Y是啥啥含义了啊这呢我是帮他快速,嗯,得到这个返回值啊行,那现际在这个包低值就有了,那包地值呢,这是一个字节,不方便我处理,我们需要把它变成一个使际来处理,哎,使劲也别导出包了啊,导这个Java浪包下的,然后将这个包底传进去,传进之后啊,这个字符呢,我们希望采用的是utf杠八这种方式,那这里面有一个。啊,谢谢。啊。第二。For him。如这里的啊,标黄了,标黄的它不是错误啊,它是一个警告,那怎么办呢。
08:10
回车啊,提示说这个replace standard UT下划线啊,其实一个含义啊,你不说处理也没问题,那你要处理的话,你看变成那它底成啥呀,看一下。那你看不还它吗?还常下了点这个full nameme啊,是一样的含义哈,这里面只不过是定义了一个静态的一个呃,常量啊,OK,那来嗯,行吧,嗯,那这块呢,点OK得到,得到的就是这个log日志。有了,哎,得到这个包日志是它,那它的话呢,我要对它进行一个校验。对,校验什么呢?如果说这个日志它是一个标准的健身数据,那我就继续往下放放放行了,如果不是一个标准日志,我就给它返回一个空。
09:00
这个含义能懂意思吧,哎,如果是正确的返回正常的,这个一不正确返回空,那返回空的话,我们在这个集合这里面就把这个空啊给它滤掉剔出去。就可以了,那行,那你这块校验它怎么校验呢?哎,校验用工具类呗,有同学说那工具类在哪呢?嗯,工具类没有自己写呗,对吧,YouTube啊第2IT vali。啊,验证就是他这方法没有呢,哎,我就擅长的就写的就是我不管他有没有这方法,我需要一个方法,那我就先给他准备好,对吧,如果验证通过的话是什么。把这个一的正常返回,那如果不正确呢,比如说验证失败了,失败了是不是return now了,再跳出这循环啊,跳出这个呃括号走藏了就行了吧,哎,就这么简单,你说这没有呢,没有没没没关系啊al加回车创建plus。
10:07
哎,写代码呢,就是需要啥来啥对吧,哎,需要需要一个类,好,那这个类没问题了,说有了,那这谁方法没有了,那方法没有没关系,奥加回车放心。你看一步到位,连方法带全有了,那你再回来,你看还报错吗?多穿。那你现在要解决的问题就是在这个方法里面对数据进行一个验证不就完了吗?在这里面验证来验证它是否是一个阶层。嗯,就是用来验证数据是否是接受。那怎么验证啊,先生写呗,那我们既然导了一个谁的包啊,是不是导了一个阿里的fast啊,那它里面肯定有相关的这个解析的啊方法啊j son。阿里巴巴的看点。
11:03
把这包倒过来啊,就倒塌的啊,然后第二哎。Pass,先导包啊,你要不导包的话,它出不来啊,出不来这个对应的这个方法,所以说这里面一定要别导出包了,你看你要默认的正常导它没有啊,好,那把谁敲进来,把它存进来。哎,就把它乘进来。这么一放,如果它是一个标准的接身的话,这个给它传进去,它解析就正常,正常什么现象那就什么现象没有。哎,那异常可有异常的话就抛异常了,如果他解析失败的话,会直接给你抛异常,那这怎么写啊,TRY简单啊看。这样写。接个啊,杰森杰三,好好来个E,哎,这样解。把拿来。
12:00
放在这儿,如果说它能解析成功,那我这块就一个。如果解析失败,抛了异常,我就给它放在这。下来,师傅。是嗯,看四啊,你能解析成功,那我就return出,解析失败,那得测试一下,看它行不行啊,哎,怎么测试呢,直接在这类里面定一个方法,嗯,对吧,直接测试啊,我们就来一个点啊点print来,嗯,打个啥呢,我就调用这个方法。调用之后,我里面传一个数据。这不是一个标准阶什么,对吧?哎,不是一个标准阶层,我运行一下。看看它得多少。应该走哪一个?是不是跑一场啊?
13:00
看是不是我们想要的啊,是false,那他说那个海哥你这他是错了,我能能检验出来,那他要正确了,他会不会走这个处呢?s.out点你看那就试一下呗,啊is,然后传进来一个值,那下面我要传一个标准的阶层,那这个阶层怎么写括号,然后正常情况应该是这样冒号引号,然后点,哎,不是点号冒号。一对吧。这样写,但是呢,你需要加一个。哎,把这个双引号跟外面的双引号重复了吧,那你要加个转移吧,啊转移斜杠引号。这不就是一个最简单的一个阶层吗?A等于一等于18吧,啊跟我的年龄一样是吧,等于18,那看一看相关的值怎么样。对吧,这就是一个标准的阶层啊,就能判断出来它是不是一个标准阶层啊,如果你一个传输数据少了一半是吧,它就错了,那这里面有个注意事项啊,有同学可能会这样去测。
14:08
说这个传返回的是true还是false?啊,返回出来告诉呢。来右键一下。这是有个特殊的啊。出啊出啥意思啊,呃,这里面网上查了一下,有一个说法,说这个string啊,它是一,它也算一这个字符串啊,这个字符串呢,它也算一个阶层啊,这就没办法啊,那这个时候呢,你可以再单独校验一下,这个数据呢,必须得是大括号开头,大括号结尾,那就是字符串的一个判断啊,咱们老板的这个项目呢,是直接自己判断的,没用这个阿里巴巴这个fast啊,自己判断这个字符串呢,必须得是star的位置,它然后按的位置,它字符串里面有个star位置方法和and位置方法啊,也是可以判断出来的啊。行,那这里面就涉及到这哈,你说如果你认为这个不行对吧,那你就再加一个。
15:03
但是呢,一旦有这样,它是能立即判断出来哈,那这个呢,我们把它删掉。行,那这个呢,解析完毕之后就回到这儿了,对吧?哎,正常的一个单一分的处理我们就结束了。
我来说两句