00:00
好,接下来呢,我们继续看啊,现在呢,这个产品经理妹子呀啊,又开始使用美人计了,说我们还想再增加一个需求啊,你刚才呢,不是新输出一个整体的文件吗?整体文件然后是有序的,现在呢,他又提出来说我希望啊,按照这个把136 137 138 139哎,这几个文件单独放一个文件里面,而且每一个文件内部是有序的。然后在其他的内容放到一起,按照总流量降序排,按照如果总流量相同,按照这个上行流量正序排。能清楚吗?你这不是上一个输出吗?哎,妹子又来了,让你实现进一步的功能。那你看这啥呀。这个咱之前学过吧,是不是控制分区啊,哎,控制分区,那现在这个这个案例呢,是控制排序的,那我排序加分区加在一起是不是就能实现这个功能了。就是这个案例越来越复杂了,对吧?哎,那我们现在来实现一下。
01:02
那实现一下的话,我们创建一个包吧,再创一个包。那这个包呢,就包含part t t。And,这个ableable接口。啊分片吧,对吧,嗯,这样一个综合性案例,那综合性案例呢,那这里面我们可以去拷贝,拷贝谁啊拷贝这个。比较的也可以拷贝的,那我们用哪一个呢。这里面我们最好用用这个吧,这个改的代码量要小一些哈,张过来。OK,这是一份,然后分区器,分区器这个能不能用,大家思考一下。这里面的分区器能不能用?能不能让你看一下他的这个泛型,这是map输出的一个key和map输出的value。这手机号儿。
02:01
这是,那你看我们现在这个改完之后,它对应的map的输出是什么。说flow是key test value啊,那我们就不可能直接把这个哎,Part拿过来对吧?哎,那我们需要改一下哈,我在这里面创建一个。把它改成兔,这样可以吧,哎,改成兔,然后。那我们要重写一下part,那怎么办,继承。An,哎,别导书包了,导长的。然后里面对应的这个发型,那第一个发型呢,就是flow b,下一个呢,手机号太哎呀,老出包了,哎,这个手太快了啊。干掉,有点像宋老师今天晚上的手术了哈。呃,拿下他。奥特加回车。实现。实现之后在这里面仍然是按照手机号前三位对吧,136137138啊去处理,那写一下呗。
03:00
啊test.to street.one对吧,现在因为是VALUE6是手机号,那把它变成。搞定那手机号的前三位,Re。Print啊,等于phone点从零到三这个代码其实咱们。之前也写过类似的对吧,那再往下下面呢,定义一个int啊,那我们这个呢是PR part。OK,然后义务判断。首先我们是136的在一起点equals,就是再写一遍啊。呃,这个呢,是pray for啊前三位。那这里呢,我们RETURN0吧,嗯。Else if。137。Their equals。
04:03
那这回return的是一。把他干掉。复制了啊,几位大发。137138139,那是0123。这个分区号是不是要求要连续啊,哎,之前已经说过啊,Else,最后一个分支RETURN0。啊,那我这个分区就没用上哈,那我想想用这个定义这个变量,你可以这样,那就把它复制过来啊,复制它呗,一样的道理。那这个呢,就是它等于。都可以啊。01234,嗯,效果是一样的对吧?哎,效果是一样的,写完那这个呢,分区我们就写完了,写完之后啊,它跟我这些代码有产生联系吗。
05:00
需要怎么办?哎,需要设置一下来到对应的这个driver里面。在这块。Job。点set part class,那这回导的就是。第二个对吧,诶第二个分区,那设置完它之后,别忘了还要设一个点set reduce task,嗯,而且呢,要跟你的分区保持一致,这是效率最佳的哈。好,那这个呢是六,那我们输出到七吧。右键执行。看看它输出几个文件哈,然后每一个文件内部是否是排序的。七。五个文件首先没问题对吧,哎,然后右键打开。打开之后,这是爬梯镇四四里面呢,是大杂烩啊,什么都有,但是你能看出来它仍然是按照总流量的倒序进行排序的。再来看一下三三里面呢,这是139的,139的有他他他没问题。
06:02
这是138,就一个。137137里面是272424没问题,零里面的748没问题吧,哎没问题,这就是这个啊产品需求啊,进一步的升级,你未来在企业里面开发也是,哎产品经理啊,每天都有新这个新奇的这个想法,哎在你原来的基础上不断的增加,不断增加。其实这是一个好事啊,你得想想,你得想清楚,如果没有这些需求的话,那你是不是做完一个需求,你你就被开除了,没有活干了吗?那反而他每每天都有需求,那说明你存在有价值,你对公司做了贡献,对吧?哎,所以说这个要看待这种事情啊,别没事儿盯着这个产品经理。这个就觉得产品经理是你的天敌似的啊,其实产品经理啊都是很漂亮的啊,他的美人计啊啊,用的还是非常棒的啊。
我来说两句