00:00
好,接下来呢,我们讲一下这个排序的案例中的区内排序,因为刚才我们把这个数据呢进行一个全排序,全排序还记得这个案例吗?来回顾一下。再就是我们这个。原始的数据,原始数据在这儿。哎,这是原始数据,我们将这个原始数据进行了一个总的一个排序吧,按总的一个排序,按照总流量进行一个倒序的全排序。那现在我们要做一些什么事情呢?哎,我们按照这个手机号。啊不同,比如说你136开头啊,136啊开头,137138139还有其他。之前我做一个分一个分区分文件呢。那要求每一个分区内部也是按照这种倒序。听懂吗?每个文件内部也有戏。啊,虽然说是五个文件,那每个文件内部有区别。那怎么做呢?
01:00
心。这样输入数据这么多总的啊。期望的输出是什么样的呢?哎,你在帕零,也就是说这个分区零里面。你会看到136开头的,看到这种数据排序。再往下。分区一里面按照137开头的,依然是这么排序。再往下,哎。138啊,就一个啊。139。四个也是按照这个总流量的到期排序。最后一个其他的啊。四那就是按照总流量的倒计排序。在哪里吗?那个前提那个输入啊,它可以是没有序的,那没问题,因为之前我们是不是有一个代码是把它变成有序的。啊,变太有趣了哈,好,那OK,那我们就在哪个代码里面写呢。在这个我们之前写过的。
02:01
脉。在这里面啊去修改。怎么修改呢?在它的基础上加一个。多了。你想一想,我对所有的数据先分区排序的事,由谁解决了?说明你上一个代码当中的B对象。就在B对象里面,这个已经compare出比较大。那也就是说在病里面这个比较代码以。把我们的排序搞定,那剩下的事就是分区,那分区就定一个分区呗。啊,右键。继承。Part。那它的K是什么?受map的输出的pick。是不是就罗宾和他呀?那把它拿过来。
03:03
搞定啊,弗罗密,好,右键。那现在呢,我们依然按照手机号的前三位进行分区。那只不过现在变谁变成手机号了呢?Y6变成手机号对吧,那Y6变成手机号,它点图string,首先将T类型变成string,然后截取啊。使劲。截取截取,那从零开始接。从零到三啊。左臂右开。那得到的就是P。好搞定,那下面呢,就开始进行判断啊判断。如果136。
04:02
第二个啊。一个brief number。那要定义一个分区的变量。燕子。好。默认等于一个是因为是五个分区。那它就等于。还是衣服?这个是137。Number。那这个呢,分区呢,就变成了一。138。139。乘二。是吧,然后卡特森,然后来。是这意思吧,哎,这样的这个分区我们就定义完了,定义完了之后还不行,必须在驱动里面对它进行一个。
05:04
关联啊,那驱动代码在。来这来到这之后设置一下。点。将它。犯罪。好,那这个完事之后,它就一定能运行吗?实现我们说最终输出的这个五个文件吗。必须得设置它的number reduce task,不设的后果是只输一个。点set reduce设置。那这就搞定了,那看一下输入文件是OUTPUT1OUTPUT1图形。一般。
06:01
删掉啊,删掉之后呢,我们重新跑一下这个罗萨这个对吧,序列化的一个案例哈。运行完毕,我们查看一下二一里面内容是。没问题吧,知道吧,哎,最终输出结果要求是输出到五个分区里面去,并且每个分区内部是倒序排序,按照总流量。那就右键。右键运行。好,结束。二不等一看。是五个文件啊,哎,五个文件来看一个。136啊。重流量倒叙。这个是138,没有有一个有一个值是吧,没有意义。
07:02
这是139总流量的倒序。那个其他。动流量的盗取。对吧,哎,这个呢,就是分区内的排序。也叫部分排序。所以说这个概念呢,要知道啊,这这个排序呢,是非常之简单的啊。
我来说两句