00:00
好,那接下来我们来看一下,从HB读出去啊,刚才是写现在我们把需求变一下,呃,首先呢,我们有一个这个附的二这张表来看一下啊。我们叫这张。这张表,接下来我想把幅度一这张表里面的。那。这个列全部导到这里面,也就是说卡了我不要了,只要那需求能听懂吗?那你不管怎么样,你是不是要。把这个数据全部给它读出来啊,对吧?啊,你要全部读出来,要做这个事啊,全部读出来这个事,那现在读的是不是我们所说的什么H数据,对吧?那你写到输入的二这张表是不是又往H倍写啊,那这个时候也就是说从H倍读数去,然后写到。哎,这杯子里边对吧?啊,我们的需求变成这个样子,那至于你要读那color,等会我们可以再定嘛,随便或者说你把整张表读过来给写出去,这个也无所谓,对吧?啊,那我们来具体来写一下这个代码,把它呢给它全部关掉。
01:07
然后我们再定一个。那么二点。F的二。那么可以吧?然后呢,再定义两个。Fruit fruit2 video。啊,没有,我把这个敷了一下。还有一个driver吧。说到B。好,那我之前提示过一个点,这个map是不是要读H数据了,那应该他要继承的是叫table卖,对吧,来看一下table。对,要导的是map报销,这下面还是一个网,是一个什么。接口叫table map对吧?啊table map,你要倒的有包table map table map好同样的应该定义它的泛型嘛,我们看一下它定义泛型是什么样子,点开。
02:09
他只有K跟value。而那个key跟value已经给你干什么写好了,因为它这个table ma已经绑定了一个叫table input。啊,因为他读的是特定的h base,数据不能是你随便定义什么类型的吧,从h base里面就定读出来数据应该类型是确定的吧,那我们看一下它类型,第二个value是一个result。这个东西见过吧,是不是都可以对应的一行数据啊,对吧,那第一个叫imunable that valuableable。你先不管,还没一个可变的,一个不可变是吧,那best是一个什么。字节数组类型的一个。可驯化的类对吧?好,那这个地方是result。
03:02
KV是不是一一对应的关系,你猜一下他是谁?啊,他是谁呀?他是什么东西啊?对了,他就是rookie,他就是rie,之前不是跟大家说了,Rookie跟put get delete以及result是A对应的关系啊,那这个地方是不是KV啊?对吧,Kv k value6是不是也是一一对应的方向,这个地方是result,实际上它是一个什么。Rookie啊,它就是rookie啊,它就是rie,那这个k out跟very out这两个不用我们管了,我们要写的就是两个,那这个out我们应该怎么写呢?Key out应该写成什么?那这我还用这个类型行不行。就是说他可以传进来什么样子,我还写它。Y6写什么呢?写,注意这个Y6是传给reduce的。
04:02
是不是写成铺的更好一点?因为到了reducer,你还是要封装这个内容的,但是ma端我们之前说过在尽量的把事情放到ma端去做的,Videor本身就是把很多数据聚合在一块去做,然后你在那里边还去封装对象,这个维做的事情就不更多了吗?你该提问一个点,如果能在ma端做的事,是不是尽量的在map端做这个,因为ma端是将数据干什么?切分开的吧,Reduce聚合呀,Member是切嘛,Reduce是合对吧?啊,一个人分一个合,所以呢,尽量的把有些事情放在前面去做啊,类似于刚才我们所说的案例啊,其实最好的方式呢,在map端。加那个对象给他干什么?构建好啊,这是最好的啊,这最好,因为be本身就是一个分的过程啊,它呢数据量给来定义啊,多大的一个数据量,但是reduce是和的啊,主要看你K的一个逻辑了,对吧?啊K的一个逻辑是这个意思啊,一个video里边呢,可能数据量更大,我们所说的数据信息,数据信息是不是都是在video的数据信息。
05:09
麦布,有听过数据信协吗?不贵吧,人家128兆一个,128兆一个,或者说这个地方一个微置一个一个V置一个,后面还要结合我们的预分区,每个微置里面数据量呢,都差不多啊,他没有说什么数据信斜,除非你是数据量太大了啊,这种问题导致的,对吧,他一定是reducer里边数据倾斜,所以在reducer尽量的要少干一些事情,能听懂好好,那接下来我们就写么。那这个方法,那方法要注意个点,这块呢,我说的是。它这个K啊,你随便写,你写no也可以,但是有一个问题,如果你写no not valuable,那最终它是不是会所有的数据进到一个reduce方法里边。因为not你比较也好,或者说分区也好,是不是都会进到一个分区啊,假如说你先定了有五个,那将来这五个有四个什么空转吧,对吧?啊所以呢,在map端最好不要写那。
06:12
第二个库的对象,我写太子的星星。可以吧,其实这个类型你随便写,你只要能把数据传过去就行了,因为之前第一个案例当中,我们就是这样做的吗。对吧,啊传过去,然后reducer封装了,但是我们刚才所说的点,防止reducer出现数据新写的一个问题啊,整个的防止reduce这边呢,整个数据量过大,数据量过大,所以呢,我们把有一些任务在map端给他提前解决了,啊就是这个put的对象呢,在map端这这来干什么,构建好,那接下来我们还是按照之前的一个步骤,第一步应该去获取。数据。对吧,获取数据,这个数据呢,是一个result。这个result里边是不是有很多的cell,还记得吗?对吧,我们现在要的,我只要那每一个赛。
07:04
你是不是应该对它进行便利啊,对吧,怎么获取value点。点做循环啊,一个一个的self,那怎么过滤出来我们想要的那个单元格是不是做判断啊第二步判断。当前的cell是否为?Name列吧,啊,那么累啊,那if。这个地方应该写那么点equal是吧,啊点equals对吧,你不要。写cell把它写在前面,防止什么控制针对吧,假如说它没有指呢啊,没有内部内列呢等等这些东西呢,对吧?啊,那防止控制针是不是把这个写在前面,不会控水针码啊,这个大家注意了,就是学的知识呢,在写代码的时候尽量去用啊,用起来啊,啊equals这个地方应该怎么写?
08:01
点to sell u吧,还记得这个工具类吧,啊点克隆它的一个是不下好当前这个内容是不是我们要的。我们要了吧,啊,我们要的好,那这个内容应该把它放到哪呢。放在里边。对吧,啊,放在放在里边好,那接下来这个铺的对象我们可以在哪去创建。在做循环方面可以去创建了,因为你现在rookie大家一样吗?Rie我又不动,我现在只要每一个R里边的什么。那那一个列吧。好,那这个就简单了,那首先呢要构建。Put对象啊,Put对象啊,又一个put,那个put好,这个怎么拿呀。是不是从这个result能不能拿到。
09:02
这个VALUE6能不能拿到啊,点甘肉吧,啊这个也可以,或者说你不想这么拿的话,也可以怎么拿呀。k.get k.get k.get本身就是一个什么,K之前说过,而且呢,Get出来不就是一个字节数组吗?对吧,它二加V得到我们一个负项,那接下来这第三步。给put对象赋值对吧?啊负值,这个负值呢,有一个很简单的方法,之前我们在给put得对量赋值的时候,大家有没有发现put.add可以传一个什么。可以直接传一个进来啊,那这样。我直接把当年那个C认进来是不是可以了。诶。If啊,少了一个什么符号啊,少了一个分号,那这样是不是就把name这一列就给它跟进来了。对吧,啊,那么这一列就给它扔进来了,好,这个for循环结束之后。
10:01
我们应该干什么,写出吧,啊,就写出。context.right不动,Value呢是我们当前的一个负责对象。OK吧,啊就这个内容,那这块呢,可以很简单,当然如果说你觉得这样之前没见过,我们也可以这么做的点艾你可以用这种方式吧,艾特column这种方式。然后用cell优就点克隆family sell扔进去,这个是不是很麻烦呀,对吧,你又不改它值,如果说这个地方你想把它之前叫M这个列,你现在想放到M1这个列,你是不是要这样说。因为你改名字了,现在呢,内幕列还是内幕列,这个音列组呢,也还是音做列组,我是不是可以直接把单元格给它进来,没问题吧啊,我们要的单元格不是name这个单元格嘛啊,给它扔进来就够了啊就够了,其他的呢也不用管了啊,其他不用管了啊,这个呢是我们所说的ma方法,那假如说。
11:03
这个里边我要统计。个数。就类似于像我们说的所看到的那个counter,统计当前这里边有多少行数据,那这个地方应该怎么写?啊不不用非得计数器啊,就最终输入到一个文件里边,但是你用计数器也可以,就是这个,假如说我想把最终的结果当前这张表输出到一个文件里边啊,有多少行数据,那这个map应该怎么写?嗯,这个map,这应该写出什么东西啊。我要统计有多少行的数据。
12:03
是吧,这个都不会写吗?就是你跟我说K定义成什么,Y就定义成什么就行。K还是KY?In。啊,然后可以传出去,是把这个可传出去外传个一是吗。怎么统计呢?怎么呢?你K还是KK是K啊。你不是100万,好像不调用100个就100万本100万次没六次方法,你怎么计。所以这个时候Kate应该是弄,或者说写死一个值吧。让他P相同对不对?能听懂吗?你是不是为了统计个数,你应该将所有的数据,所有的数应该要进到同一个reduce方法里面去做迭代,对不对?那如果说你直接把K写在这,每一行数据调用一次reduce,那我写不出多少个reduce,是不是每一个如IE会调用一次reduce方法?
13:04
那你能把所有的K统计到一块一个值吗?统计不了吧,这个K必须对于所有的rie来说应该是一个相同的值,那最好的就是一个什么?Not吧,啊,什么都不用啊,什么都不用,当然你用一个in the,然后前面定词大家都为一或者都为二也可以吧,也就是说前面这个P大家要。干什么统一,你就类似于你们之前做的what come,你能统计一个单词,前提是因为那些相同的单词都进到了一个reduce方法里边,你是不是在里边用迭代器做里加的呀,对吧?啊,所以说一定要想一下这种问题啊,想想我刚才我我都。被你们的那个整个的状态弄懵了,这个不会的吗?好,那这个东西我们来。啊,这个呢是map对吧,啊map。
我来说两句