00:00
啊,其实刚才我们所说的那个动态分区那块内容呢,其实在官方文档当中,这都能够去找得到,属于电源杠当中插入数据的,然后刚才我们说了动态分区的这个列呢,必须是指定在所有列的什么指定到最后对吧?啊指到最后,然后呢,还要说跟这个长语句当中有拥有着相同的这个顺序,这个指的什么意思呢?是这样的啊,假如说我们是二级分区,是不是第一个有一个对,第二个有个什么over,那你在circle最后写的时候,把分区信息放在最后两个。倒数第二个得是D,倒数第一个是哦,能懂这意思吗?它顺序得相同对吧?啊A相同的顺序,而且呢,刚才我们说了在have3.0,这注意啊,3.0才有的啊,之前是不行的,已经可以不再需要指定什么动态分离字段了,对吧?啊不需要指定了,就是刚才我们所写的这个语法啊,就这个我们之前是不是还指定了一下,还要开启那个所谓的非严格模式,就到了3.0之后,非严格模式不用开了,然后这后面这个东西也可以干什么不写了,对吧?啊不写了就方便一点,倒不是说这个有功能上呢,有多大的一个更新,就是稍微方便一点,做动态分区的时候少写点东西,不用看那个属性了,对吧,就除了这个其他的也没什么差别了啊行,这是我们关于这个分区这块的一个内容,对吧,那之后呢,还有一个分组点。
01:29
啊分图表,呃分图表呢,既然之前我们说分区,现在呢有个分图,它其实也是将数据集干什么。分开也是将数据集给它分开,但是这个分开啊,它不是针对于文件夹来做的区分,它是直接针对于文件,它是将我们一个表,本来我们看到的一个数据叫STu.TC是一个文件放在里边的,如果我们做了分图,它会把这个文件拆分成更多的几个小文件啊,那分组表呢,是在数据集极大的时候才会用到的,因为分组表呢,它可以配合后面的我们抽样查询。
02:12
啊,可以做这个事情啊,一般的这公司当中这个东分钟表咱们做一个了解就好了,不像分区表,那你下去要多练一练分钟表做一个了解,然后里边的搜个呢,稍微的去敲一敲,有个音响就好了啊,这个不作为重点掌握的啊,行,那我们看一下这个分钟表啊,首先呢,刚才我们提到的分区表呢,针对的是路径,就文件夹,而分组表呢,针对的是数据文件啊,它会把一个文件呢拆成好几个小文件啊,是这样的,首先呢,我们准备一个数据啊,来当主任。还是在这data塔目录底下,我外那个STU点插入啊,然后呢,把它放进来保存退出啊,没有什么其他就16条数据啊,从1001~1016这边呢SS1对吧到呃,其实这个SS呢指的是送送啊,从送送一到送送16好吧,呃,然后呢,因为要等会呢,还是要执行MR任务啊,所以呢,我们还是一样的去干一个什么事啊,分发一下啊分发一下,省得报错了,或者还有一种方法,我们把这个东西上传到HDFS。
03:23
那你随便哪个节点执行,是不是NDF的数据大家都能访问到呀,对吧?啊,所以然分发一下啊嗯,然后接下来呢,我们去见表,这个见表语句呢,我们先搂过来看一眼,放在这S啊对吧?同,然后呢,里边有个ID,有那找两个字段嘛,完之后呢,来注意看这,我们把这个分区表的建表语句拿过来做一个对比,分区表刚才还记得我之前在这写的时候,我写一个dp number跟这个完全一样,它直接干什么报错,也就分区表的时候呢,分期分区字段必须跟我们表里的字段不同,它是独立的一个字段,相当于它还要在这指定什么int类型呢,而分同表看a Di Di,而且呢,也没有指定int,分同表必须用的是这里边字段的某。
04:23
其中某一个。啊,用其中的某一个来作为它的一个。分筒字段啊,分筒呢,用的是class t,注意也加了什么ED,对吧?加了ED是不是在查询语句当中有一个class,还记得class,回忆一下它是干什么用的?对,当和字段相同的时候,可以用class by代替那间表语句当中加了什么ED,所以要注意一下,然后呢,我们把整个数据分到四个桶里边,最后这个就不用解释了吧,对吧,其实就是分钟秒呢,多了这两个东西。
05:07
指定分桶字段,以及指定什么分筒的个数啊,桶的个数对吧?好,那我们把这个创建好了啊,同表创建好了,然后之后呢,你也可以正常的去描述一下啊,那这个就无所谓,其实只要看一下什么统的个数对吧,然后我们看一下,找一找这个属性在。在这对吧,而且呢,这个信息是不是在这对吧?哎,我们按照ID进行分组的,好,那表已经记好了,接下来呢,我们把数据导进来。啊,漏的一个数据对吧,还是一样的叫漏。Data我们用local pass,这个时候我们放心大胆的用local,因为三台机器怎么样啊,都有吧,啊在本地都有啊,那其实最好这个东西呢,还是用什么用HDFS对吧?啊into table哪张表S下划线。
06:09
哎,是我是Bo的啊,Bo可是批量,应该是桶6CK啊B啊,BK是Bo是批量的意思写错了。这个落个病例呢,他也会去走这个MR的一个任务是吧。嗯。最后呢,它就会形成这样的一个四个文件啊。他会根据ID去分的。
07:05
等以后大家讲了那个Spark之后,这个have换成Spark引擎就会好很多,这就不至于这么慢,这个实在是太慢了。啊,学8UG以后就毕业了,想太多了,学8UG之后还没两个多月呢,学项目呀,项目学完还有弗Li呢,咋啦,不学Li了就不学了,我们这是这张表啊s do报这张表是不是四个呀,对吧,让我们看一下啊,它其实按ID去分的。这个属于零,那四八十二十六除以四的对吧,还是零对吧?啊,那这个里边毋庸置疑就是什么了。反应这么慢吗?一五九十三对吧,一嘛,除以四对吧,那我们就知道了,二三里边我们就不用去看了,大概知道它是什么样现象对吧?好,那我们就查询一下总的表啊,它的数据呢,就这样子啊,因为它正常加载的时候呢,它是从按照文件的顺序去加载的,从前往后读嘛,对吧?那这是不是零号那个文件,这个是不是刚才我们看到一号文件啊,这个是属于二号文件,因为二六十十四是不是除以四正号二了对吧?这个除以的正号十三零二三啊,它其实也是类似于这种哈希来的,因为in特类型的哈希是自己的对吧?啊不是string类型,斯类型,可能根据这个字间字间码阿斯柯玛值去乘以一个什么31对吧,然后再加上一个什么阿斯柯玛值,又乘以一个31,对吧?啊,为什么乘以31啊,容易。
08:56
有两个情况对吧,第一个31是一个质数,质数的话是不是减少了哈希碰撞呀,对吧?啊会减少哈希碰撞,第二个呢,31正好是32减一是吧?它在做乘以31运算的时候,它可以换成不运算。
09:17
啊,它可以往左移五位去扩大三12倍对吧,然后整个的减一啊,就扩大三11倍,就是它底层为什么选这个数字考虑的这么多啊,所以源码当中有时候要多去看一看,能学到很多东西啊,能学到很多东西啊好,这是我们所看到的一个点,就说分钟表呢,把数据放进去,其实它就是根据ID,然后呢,去模拟四对吧?啊去模拟四得到的这个内容啊,得到这个内容啊呃,然后这个地方要注意一个事情,就是说reduce的个数我刚刚刚好是四对吧,最好的情况下啊是设置为负一,如果说我们设置负一的时候,那分钟表分几个桶,它就会有几个reducer,因为最后他写出来什么几个文件,是不是有几个reducer写出来的,我之前是不是刚好设置了四,我就没改了,所以大家在测的时候最好改成什么负一啊,负一或者说呢,大于等于分桶的一个桶数,要不然你就分不出来什么是桶。
10:16
你分四个桶,最后要四个文件两个,我设置为两个,那有用吗?你只有两个文件了,对吧,所以要大于它,最好是设置为负一啊,第二个这个地方。说从ipdf漏的数据,否则避免掉问题,找不到,这个我们是怎么解决呀,我并没有把它放到ipdfs,我是不是分发一下也可以啊,对吧?啊,两种方式都行,最后一个不要从本地模式,本地模式我们还没聊啊,我们还没聊这个到时候再说啊,本地模式呢能快一点,最后呢,我们就可以把数据放进去,也可以从另外一张表里面in色进去,这种方式也可以啊,这种方式也可以,刚才我们是不是用漏命令啊,对吧?In色的方式也可以啊,这是往里面放数据,这两种都行啊,那接下来我们去抽样查询,所谓抽样查询呢,来看一下S新还是这样子,然后加一个参数叫table sample table表,对吧?Sample什么意思?就是样本的意思对吧?啊,样本的意思好,那这里面呢,叫8124ON ID ID不用聊吧。
11:20
就是说还是以ID作为分等的一个条件,对吧,那我们这个来运行一下,看一下什么情况啊来。这就是所谓的一个抽象查询,其实你看不出规律啊,然后呢,我们再改一个这个值。还有啊,就是说这个地方呢,它要从考虑到每个桶当中,假如说我们改成八来看一下。就那么一点啊,抽出来一条数据。
12:00
这个大体上啊,就是说因为它抽象嘛,是随机的,我们只能说一个大体上这个概念,其实他抽多少东西呢,是这样的啊,基本上它这个位置。就后面这个位置啊,代表的是我样本总共要分成多少份啊,现在呢,我有四个桶对吧,你现在如果说是四,基本上呢,它抽出来的数据呢,是大概是一个桶的内容,一个桶里面现在说大四条数据啊,就是随机的四条数据左右吧,但是因为咱们数据量小啊,就是你要测这种随机算法,数据量特别大的时候才能看出来效果啊,特别大的时候才能看出效果,而前面这个内容啊。前面这个X这个内容,呃,一般指的是就是数函数量小的问题啊,你看不出来这个效果,它指的是从基本上从哪个桶开始抽,从哪个桶开始往后去找数据。啊,从哪个桶开始往后找数据指的是这个意思啊,两个嗯,一般的最最终呢们是抽取出来,你看啊,一般我们抽取出来之后,它不是一个整张表的一个数据了,不是整张表的,也就是说我们之前就提到了分工表在审它的应用场景是什么。
13:17
数据量极大的时候,对吧,数据量极大的时候,我们呢,会对它进行一个分组,然后有时候查询数据,我们看它的规律的时候呢,我们就结合着我们这块的一个什么抽样查询去做这个事情,而且呢,抽啊抽样的话,这个东西它里边还是一样的用到了算法啊,就类似于你之前我们提到的可能用到什么伯努利啊,郭松啊这些东西。你没办法去找到,因为抽象每一次实验都是随机的,对吧,但是只不过说呢,对于我们这个固定的数据来说,它一样的,但这里面有一个点,嗯,他们说X值不能。必须小于Y的值。
14:01
啊,那这个东西我们看一下啊,大家根据我刚才所说的,你去推一下,就是说这个地方我写个五。这个地方我写个四。画错了,他说这边其实就是说我们前面这个值不能大于后面这个值,那你推一下刚才我说的这两个参数的意思。我要把整个数据集分成四等份,然后你从第五个图看出。就是第五份开始抽有吗?没有对吧?啊,根本就不存在这种数据,我分成四等份了,把数据呢,分成四等份,你非得说从第五等份开始开始考虑抽,有这个数据吗?根本就没有对吧,根本就没有,所以他不能大于它,包括我们有可能说我那你说是不是说我总共分了分了这个。
15:04
四个铜你写五不行对吧,那这个写三,这个写二,大家觉得这个能行吗?也不行啊,它这个东西啊,我们说了所谓的哪个桶,指的是重新按这个数据分之后,对吧,就是说你现在16条数据,虽然两个桶,也就说将来我应该抽多少啊,一半一半开始抽,对吧,我要抽1/2,可能然后呢,我们从第三个位置开抽,有第三个位置吗?没有对吧,所以说呢,他不能在他这个其实指定的是从哪个位置开始抽,这个呢,是将你整个的均分为多少抽多少啊抽多少就抽整个的抽1/2啊,抽1/2啊,这个是抽1/4,大概的一一个一个范围啊,就类似于大概的一个范围,因为是抽样嘛,他不可能说我说抽1/2,你16条数据我就抽八条,那15条数据他就不能抽了吗。
16:00
它不可能是一个绝对的概念,能理解这个意思吗?因为是抽象嘛,对吧,你16条是有一半可说,那15条13条怎么办呢。抽6.5抽7.5吗?不可能这样的情况对吧?啊,所以它只是一个抽样啊,大家了解一下这个东西呢,我们今天说过了,分投表呢,其实在公司当中,你们去工作之后啊,呃,也不太常见到,第二个呢,面试的时候也不太能见到,不太常见到,你知道一下他还有这个分工表对吧?然后呢,它结合着可以结合着我们所谓的一个抽样查询来用就行了,但是分区表这个东西一定要是去掌握的。这个就是我们每章当中都涉及到有重点内容对吧,那分区表的重点内容,而分组表和账号查询呢,去了解一下,自己去玩一玩,对都测一测对吧。
我来说两句