00:00
好呃,在汉当中啊,它其实还有一种分同表,分通表,它有它还有自己的一个查询规则啊,他还有自己的查询规则。来注意讲分总表,一定要讲那个分区表,分区表当时我们讲的是分的是。文件夹是不是啊,文件夹就是路径路径,然后这个分图表呢,它分的是数据文件。数据文件就是你最后那个student.txt啊。假如说你要放到四个桶里边,它最终把这个student连TST啊分成了四个文件,那这个东西跟什么很像啊?怕是吧,又跟那个那个分区一样啊,是不是最终形成了四个文件吗。最终形成了四个文件,那我们看一下。他其实也是数据量很大的时候来做的,而且分表啊,在一般的公司当中还用不到,用不到,因为他要求数量级太大了。
01:10
小看你都已经做了分区了,你都已经做了分区了,你还要对文件再进行再切分。就说明数据量太大了,就目前我跟很多出去的学生都聊过,就是他们就专门做汉这块的,也没有接触到,很少有人接触到分组表,分组表但是大家要了解一下,来了解一下它也是针对于数据集的,数据集过大,你想想看分区是不是当时讲的时候就是数据,数据量过大了之后,你需要把它放到不同的文件夹里边啊,哎,这个就是一个文件夹里边同一个文件它还大。它太还太大了,那你要分成不同的文件,不同的文件是这个意思啊。你看它是分筒,将数据集分解成更容易管理的若干部分的另一个基础啊,这还有一个基础就是分区,知道吧,分区,这两个分区和分桶都是解决数据量过大的问题啊,过大的问题了,那我们来创建一个分同表,分表。
02:12
分钟秒。首先是create一个table。BO8的啊同,然后它的一个字段,然后是ID,然后是in特版。Name,然后加一个string。这个时候你要指明分。同字段来看一下我们这个语法。在语法在这是吧,建表的语句还记得当时帕的这个字段是吧,这个字段要编一个什么,要类型吧,然后分同呢,他不用跟类型吧,而且我们强调过这个字段一定是这里面的字段吗。
03:00
读一下CED,刚才class没有ED吧,我们讲了ED这是关键字啊,你稍微记一下就在见表语句里面,它才有,它才有的啊。然后我们这个ID啊,我们按ID进行分,然后INTO4个B。CKS啊,我们准备放到四个桶里边。就类似于你二里面写的什么。最后你那个返回帕盖到爬那个。你返回的这个是是这个意思,然后是如的吧,这块我粘下了,不写了。Role format。括号ID要用括号ID括号。
04:01
那我慢慢把这个粘一下。因为我们写了很多行,再往上翻的话也比较麻烦。这个ID是要加括号,你看他语法号的是少了一个括号是吧,ID周围是吧,一下分钟表都建好了做。收bos,看一下分钟表在这,然后我们从集群上看一眼。首先你们觉得这个表从表格结构来看,它应该没有什么区别吧?You'的have will house。表,然后这张表肯定都一样的啊,就像我们当时建分区表一样,他这个表建出来它都是一个空档文件夹啊,它不会有什么具体的内容,那接下来我们要做的事是什么呢?往里面放数据吧,啊放数据,那我们放数据,那放数据之前我们要为了好解释,我们要对这个数据做一个修改。之前不是有一个16的吗。
05:01
嗯,我们背开一个STU。BT吧TST,因为之前呢,我们呃分桶也不好分,数据量太小,数据量太小。我看一下我有没有数据啊,这边是有数据的是吧,我们把这个拿一下。在这。因为这个数据量稍微多一点,然后它是123~16嘛,到时候我们会更好的看清楚这里面的具体的数据啊,CTRLC拿过来,然后粘到我们这,粘到我们这拿过来CTRLC,然后我们把这个数据干什么。导进来吧,哎,通过我们最常用的是漏漏data pass吧,这个东西现在已经都敲烂了是吧。DW,拿下。你想想看,你们都敲烂了,你想看我得唱多少次?
06:04
BK这个名字取的是什么?STBT是吧?b.TT into into什么呢?我们这个table是ST杠比CK吧,CK好走一下,数据加载进去了,那我们查一下线啊,二好,看正常的分钟表我们能查到,查能不能查到数据。走数据是没有问题的,对吧,哎全部导进来了,但是我们要看一下什么这上面呢。我们见的分组表,它最后还是只有一个文件。那其实我们能想明白是什么原因吗?因为你这个load呀,Load加载数据,我们之前所讲的,它是不是等于copy或者put呀,那你想想看,你要是往HDF上put一个文件,它怎么可能给你分成四个文件吗?不可能啊,哎,这是加载方式的问题,我们知道了,那我们换一种加载方式。
07:14
我们通过insert insert它这种方式不是会走MR任务吗?哎,我们通过insert来插入看一下来,首先我们把这张表清空了,T2。窗开了窗看C看,然后吧,然后S吧,把这张表清空了,清空之后查一下,放心一点,让那个。啊,就是这张表,你看一下这个数据啊,传开了之后,这个数据也没了吧,把数据也删了,因为它这个管理表。好,接下来我们建一个普通的表。把数据导进来,因为你要通过ins色的来插入啊,我们不能in色的values这种方式插入啊,太慢了是吧,我们通过什么呢?这一普通的表,把这个数据放到普通表里边,然后你银色的插入的时候,C那先这张普通表。
08:10
懂我的意思吧,OK,那我们快速操作一下。结果,然后sto有有没有sto这张表没有to是吧,Sto被我们删了,好,那正好我们就创建一个s To Grade table s to这张表,然后它的一个字段,那字段肯定要一样嘛,Idt,然后是。嗯,那好,然后直接就是说风了吧,没有什么分区分了吧。慢了。然后是limited limited,然后。Terminated。
09:00
高地。走一下,创业成功了,然后把这个数据导进来吧。漏的漏的。A local impulse。卢静。然后是STU杠,UCK。点T吧,Table,然后是S这张表下,现在查一下S这张表里边是不是有数据,那个t from s to已经导进来,对吧?啊,接下来呢,我们就是要往。我们的分同表里边通过insert来插入insert,那怎么写啊?色的或者都一样吗?因为你里面是没有数据的嘛,Table。
10:01
是哪张表,S tu BU CK这张表,CK这张表,然后呢?查询语句了啊,Select from to这张表好走一下。有同学应该注意到这个问题吧。那个。最终的结果还是只有一个文件,只有一个文件。啊,那通过这种排六的不成功啊,其实它还有一个属性来看一下啊。在这普通的方式,刚才是普通的方式导入吧,或者说。这是我们刚才所说的是吧,结果是这样的啊,通过像一个普通表里面插入数据,然后通过音色的。
11:05
这种方式插入的时候发现还是只有一个,其实它还有一个属性这个。来看。这是什么啊?是否分头啊,它的属性你看默认的值是什么?是false啊,就是这个属性。这个属性他不让你分同,不让你分同,那那底下怎么可能会分多个文件吗?还是不可能的,那我把这个属性改一下,改成什么。True吧,哎,改成true,接下来还要改个什么内容呢,就是你这个reduce个数你不要,你不要从外面自己设置了,你让他分通表,他自己来管理的。自己来管理,我们是不是分成四个桶啊,那最终你正常的。应该是几个为634个吧,你就把你自己的那个值呢,你把它改回去之前我们是不是设置了三个,你改成负一啊,让它走它自己它个语句里面,它自己那个reduce个数的一个逻辑啊,你不要在外面自己设置了走一下。
12:16
接下来我们往那个桶里面插数据吗?插数据之前我们还是要干什么,清空一下刚才我们那个表吧,对吧,然后是S。走一下,然后看一下啊,没有数据了,没有数据之后,我们还是刚才那个语句是吧。哎,In to,然后是select新from,然后是s still,这张表是不是走一下。那你看一下这个时候reduce的个数。是不是四个啊,六个四个,那我们就知道最后的文件肯定是四个吧,啊四个文件。
13:12
好,然后我们先查一下谁的。然后这个STU-BCK走。哎,你发现了一个什么问题啊,就是之前我们查的时候是什么要一到16是吧,就是说发现它数据变了。但是有一个规律吧,什么规律啊,这个东西除以四零嘛,哎,这个是一,那这个是二,这个是三。那其实他select新读数据的时候,他干了什么事呢?他就从上往下读吧,他就是挨个文件读的是不是。就是select新读,你select新没有走任何6%程序吧,他就把数据读过来,是不是他读过来的时候呢,如果你这里边有多个文件啊,它是从第一个文件读完了之后,读第二个文件,然后往下读的,是这样的,好那你想想看这个。
14:15
分区号不是零吗?013这个地方不是它的分区号,这分区号怎么来的呀?是不是模拟四啊。为什么模拟四是不,我们见铜语句的时候说into four8,哎,见到四个铜里边建到四个铜,它所以它是最终会产生四个reduce,哎,同时产生了四个文件,四个文件,而且它肯定是按照你的。分钟了字段你分不是ID分懂了吗?是不是我们见表有。建表语句不是classed by ID吗?哎,你是按ID来进行分统的,那最终要模拟四的那个数据呢,就是ID,他拿ID去模拟四。
15:02
所以说最终这个我们可以下载下来看一下啊,那这里面的数据肯定就是四八十二十六吧。是吧?桌面这个打开。啊,他读的顺序就是这样的啊,都是一样的啊,他谁来个新,只不过就是把数据全部读过来而已,他不做任何处理吧。这是我们分统的一个展示啊,你一定要注意他有两个属性吗。第一个你要把它这个分同属性给。设置成处,它默认的是false,你要想见分钟表的时候,你一定要切记。第二个就是。你不要指定这个reduce的一个个数的话,哎,你让他按照自己的,它里面写了分成四个桶,它自己就知道,它最终会放到四个reduce里边啊,会采会起四个reducer来处理这个数据,处理这个数据最后查询数据的话,它就是按照。
16:09
文件的一个顺序啊,文件的顺序从上往下读到啊,因为C新不做任何处理,它也是不做任何处理的,他只是把数据从HDF当中拿到你的控制台而已啊,拿到你的控制台而已,没有多做任何事情。
我来说两句