00:00
好,我们来看一下第二个说的本身也是排序吧,说是不是排序的意思啊,好,那这个说跟auto有什么区别呢?大家看一下啊,So by,它指的是每个reduce内部进行排序。每个reduce内部进行排序啊,对于整个全国全局全局的结果级来说不是排序,那这是什么意思呢?我们来执行一下,首先啊,他说了,对于每个reducer的一个内部进行排序。那就说明它涉及到多个reducer了。对吧,那我们看一下它默认的reduce的一个个数。稍等一下啊,这个应该是。就是点job点。应该是这个属性。Map reduce写错了。
01:01
应该少了一个,多了一个r reduce,对,你看它默认的是什么,是一个负一,当是这个属性你不需要记啊,不要因为我讲课讲多的,稍微有点影响啊,稍微有点影响属性,它会我们都会提供给到大家的,还有很多属性,你在那个什么have杠,Default那个文件里面,是不是都能找到这些属性啊,啊都是能找到的,所以说这些属性你是没必要记的,但是你要稍微有有一些印象,它有哪些属性可以控制相关内容吧。啊,因为你找的时候有目的的去找,当然具体他怎么写的啊,你没必要去记了,好那我们看一下。它是这样的,它默认是负一。我们卖六默认是多少?一吧啊,那六的方是一,那这个负一它肯定不可能说是一个负一吧,其实这个负一是什么意思啊,这个负一指的是它会根据你的搜索语句啊,具体的来根据你的搜索语句来分析的,搜索语句来分析的。
02:06
它会有一个规则,后面我们讲大概跟大家提一下,它是这样的,它是根据你数据的大小。他是26张一个,六张一个。兆一个有的同学比较差异,那学不是,那应该写的是100兆,但是have当中它有256兆,250兆的一个,然后他还有整个have针对的这一个缩法,它会有一个最大的大小,我记得没错的话,应该是1099,哎,这是什么意思呢?就是说你的数据量特别特别大的时候。加除以已经达到2000个了。他不会执行2000个啊,他会走这个啊,这两个属性都是可以设置的啊,啊就是负一,但是现在我们数据量没有那么大吧。
03:01
我我们测试的数据量是不是很小啊,那我们就要手动的来设定它的一个这个micro的一个值,因为你如果想看,你现在不是想看说BY这个执行的结果吗?是不是啊,说它是什么。他说每个reducer内部进行排序,那你要想看,你要不然就搞一个什么比256兆还大的一个数据吧,还大的数据,然后你去排一下走一下看看,要不然我们就改了一个属性吧,哎,我们把它改成三个。啊,让他自己按照这个属性,它负一,负一的时候,他就会走刚才我们所说的那个逻辑,当然你指定了具体的个数的时候,他就不走那个逻辑了,懂我的意思吧,哎,它是多么判断的,那我们手动的给它设置为三,再等一下,哎,等于三。好,那你此时再查一下,它就是三个了吧,而且是当次这个汉的窗口有效吧,好,那我们再来查一下select的新from,然后这张表我们说我们如果。
04:13
那会怎么样呢?他走向。我们看一下solid,那他说是按照不同的分区当中来。排序的,那就是最终它肯定是按CE进行排序的,这没问题吧,因为你缩的不是排序嘛,缩的后面肯定是排序的一个字段,但是这个三个reduce。它是按什么分的呢?对吧,来看一下,首先你这块打印的控控制台的话,你根本都不知道分了三个区是什么样的,你你谁能告诉我这这个三个区怎么分的,一到多少行,二到多少行,不知道吧,那我们有另外一个办法,什么办法呢?我们之前是不是讲过可以将数据导出到。
05:06
一个文件夹里面了,是不是啊,这个语法怎么来了,你色你色了。我然后吧,还有如果你要找到不要。然后后面跟着一个路径放到O。Model,然后带着下面这要写一个路径吗?我们这个路径就叫说下划线,然后一个造的到这个结果,然后查询的语句,哎,是刚才我们写的select的新from EP这张表,然后是。说到拜了,说到拜,然后笑笑。
06:02
啊,因为打印到控制台,我们是没有办法感应到它分成了什么,三三部分嘛,因为我们已经设置成三个了,但是打印到控制台你根本看不出来啊,走一下我们打印到具体的某一个文件夹下,如果说这个文件夹下有三个文件。那是不是说明是什么三个分别进行排序的呀。走一下,我们到这来,OBD对四还没有产生结果是吧?执行完了,已经走完了是吧,看一下你多了一个文件夹,CD到说到这个文件夹里看一下,哎,还有三个文件吧,三个文件,然后分别看一下那个文件,看了一下这个零,然后零走一下,有一堆数据吧,有一的数据,然后一也有对吧,然后二。
07:04
啊,也有一些也有一些。就是so,那这个时候是因为我们写了三个reduce吧,哎,手动的指定了reduce的一个个数。它就能按照每个分区当中是有序的,那你要看一下我们排序的是按谁排序的。工资是吧,啊这个就不好看了,因为我们没有杠T是吧,骂的没加入的。就是能看到1250 1500 2450 2850,三千五千嘛,他是按照还是默认的是那个升序升序的吧,升序的来排列的排列,而且他是放到了三个不同的区里面的。那此时如果说这样,呃,我们reduce的个数改为三了,如果我们此时再用all办呢?
08:02
Order呢or对吧,我们把order也输入一下,看看这个地方改成order,那它的一个reduce的设置的个数会对我们这个产生影响吗?你说应不应该会产生影响啊,会吗?如果你要想一想,这个产生影响跟不产生影响的结果会是什么样?看这这这个日志打印的是什么。说吧。个数三个吧。
09:00
这个地方打印的是什么?奥特曼吧,一个。Old它本身就是全局排序,他自己框架,你想想看,他在形成框架的时候,他是不是自己又把一给改回去了,他会改了,他要不改的话,那你order你让人家怎么用啊。对吧,它肯定是一个reduce,你稍微想一想对吧,你想想看autobi它干什么用的呀。对吧?哎,他会根据这个关键字去找框架的时候找模板,它不是有很多memory的模板吗?他找模板的时候。他又把这个属性给改回去了吧,虽然你给他设置为三,但是他一看到欧特曼这个关键字,他就知道你要做的是一个全局排序。那它一定只可能会走一个reduce任务,他要走三个,怎么做全局排序是不是啊,这要想明白了,那这个最后我们就不用看了,其实这里啊CD出去是O的这个的吧,L一下它只会有一个文件吗?啊,因为只有一个,只有一个,这你要注意啊,因为O它就是做全局排序用的,所以你外面再给他设置什么所这是的个数,不好意思,他还会给你改回去,要不然你包派这个关键字就没有任何意义了,让人家怎么用啊,你你随便你你敢用吗?
10:33
你根本不敢用是吧。
我来说两句