00:00
好,接下来呢,我们具体来实践一下哈,嗯,首先我们来写一下这个,嗯,确定报名吧。右键创建一个package,那我这个package呢是output。Format对吧,哎,这个包,那在这个包下呢,首先我们来创建一个map。那我们这个呢,就叫log。Map。打开。打开之后,那这个lock map呢,它是要继承一个map。这里面最容易出错的就是导包啊,导长的就行了啊,记住导长的啊,那输入进来首先第一个可以啊,让。Right,老生常谈,那V呢,是对应对应的test好。那下面下面它最终的输出的KV是什么?对吧?哎,那这时候我们输出的KBA,其实就是它这一行内容V呢,这里面没有,那就用这个now write包进行一个。补空啊对吧,哎,补位就行了,那它必须得成对出现嘛,那行,那这里面就是。
01:01
呃。过来对吧,哎,进来进来之后我们把这个最原始的数据呢,给大家看一下哈,看一下最原始的数据input。嗯,Input out put是它对吧,哎,是它,那它这里面你抓过来几条放过来。写这个代码的时候就建议大家,诶,你把数据往这一放。对不对啊,你就清楚了啊,他进来的是,他进来是他,我期望输出的什么呀,我contest.right往出写,我期望输出的是这个。以他为key。然后对应的value是now。对吧。是这么一个结构,哎,你进来的是Y6,那Y6好,那我给他一个Y6。对吧,哎,Y6,然后输出去。Now right ball,那你看那red往这一放啊,它报错点get,这样就能获取到对应的这个类型了,哎,直接写出。对吧,那这里面呢,就说在map阶段呢,我不做任何处理。
02:07
直接把这些数据放过去就行了啊,你来一行我写出一行,来一行写出一行,哎,这是卖机的,那下面我们再来一个reducer。Log。啊,Reducer,那同样道理,Reducer呢,继承re reducer,哎,选长的有长选长的。进来之后,那它的key呢,是test。诶,这个默认那个包还不是哈,太对吧。看一下它好,然后下一个啊V呢,就是这个那。OK。那接下来他最终的输出,我是不是也是把这个这一行内容输出去就行了,那right吧,哎,仍然是这样哈。按。干掉好,那还是你再抓过来的数据。放在这儿。
03:01
思考一下。我这里面进能进到这个reduce方法是不是一定是。这个相同的K啊,相同K有没有出现这种情况。我现在是不同的两个,他不能同时进吧。那是不是有有有这种情况。比如说我两条这个3W点百度,呃,百度这里面还没模拟哈,正常情况下,假如说我这个这个文档里面有两个一模一样的网址进来。有这种可能吧,那如果你这样的话。如果我现在只是这样写right,你进来的是K。出去的是now点。如果我直接写出去,那我是不是就进来两条,我出去一条了。思考一下。对吧,哎,你进来两条输出一条,那丢数据了,那为了防止这种读数,什么Y64.for for循环啊啊放过循环我就知道。把它再放进来。这样不就OK了吗?CTRL2L加来关系。
04:03
好吧,哎,所以说这块要注意哈,这块呢要干嘛呢,要防止。有。相同数据,然后丢数据。对吧,哎,这个处理啊,要注意一下行,那这是map和就是那下一步就到了哪一步啊,接下来我们要处理的就是自定义一个类继承record writer。然后呢,重写里面的这个方法啊,进行后续的一个处理哈。
我来说两句