00:00
好,那接着上午我们来讲,呃,这四个半呢,整个的还是挺重要的。啊,你会大量的用到啊,大量用到当然除了这个之外啊,还有。还有啊,还有一些我们大家接着看,接下来我们看一下这个分组表。啊,分图表这个呢,跟分区表是有区别的,他在公司当中应用的时候啊,就是分图表跟分区表就一个目的就是筛选数据急用的。但是分读秒我们了解情况来说,它用的比较少。啊比较少,因为他在这个数据量极大的时候才会考虑这个分层表啊,看到没有啊,所以呢,我们稍微的做一个了解啊,整个做一个了解来看一下,呃,第一个。分钟表它的一个概念,我们针对于分区表来说。分区表呢,我们当时看到是不是针对的是分区的存储路径,对吧,也就是说我们要把数据放在不同的。文件夹里边。啊,把不同的数据放在不同的文件夹底下,而分筒呢,它不是,它是放在一个同一个文件夹上,但是呢,它不是放在一个文件里边,就是你导过来的数据,它会把它放在多个文件里边,这个分筒呢,它虽然我们把它叫分筒对吧,但是这个时候呢,大包什呢,它跟MR的分区啊很像。
01:20
它跟mmr的分区很像,Mmr当中,MAP6当中我们分了几个区,就像上我所说的用了BY。他是不是将数据放到三个文件里面。对吧,按照某一个字段是不是按照具体的字段来分的。我们上午用的第1p number对吧,按照我们这个表里的一个字段,将数据呢放到同一个文件夹,同时呢是放到三个文件里边,而此时这个分筒就是这种感觉。他就能把数据呢,诶针对的是我们当前表里边某一个字段,然后根据哈希,然后放到不同的文件里边啊,不同的文件里边来我们来看一下这个数据啊,第一个这个数据呢,我们来用一下啊,我们还是用这个数据,这个其实你们可能不是因为你们没装来。
02:08
对吧?啊,你们应该是那个文本文件的格式,这个是可以打开的啊,双击可以打开啊,上午那个C也打开了,打开之后呢,我把这个数据拿一下,呃,其实在这个sub里边,你把它全选上,这中间,这中间是横杠对吧,横杠它代表一个杠T。啊,如果说是空格,你看空格,我交了个空格,空格是点,这样你也能看出来,很方便的看出来分隔符。看AC啊,给他拿过来,然后呢,放到我们那个里边。CD欧model,然后呃,这个里面呢,S to9对吧,我V一个。Q,点TXT啊,点TTOK,它入数据啊,这个1001到幺零幺六十六个数据,16个数据,OK,然后接下来我们来建立一个分通表,我们把这个关了,要不然这个很难受。
03:01
我们。在这,然后我们创建分组表,分组表呢。基本的语法来看一下。这句。这句不用解释了吧,对吧,呃,Table一个表明,然后呢,字段两个,字段一个ID一个,然后接下来这下面这个叫的fields,他明明就是带杠替,因为刚才我们这个数据导进去按杠替分割的,对吧?啊这个没问题,接下来就是分层表的逻辑。注意,上午我们学了一个class,还记得吗?代表了Dis跟相同的注意表里面这个叫什么?ED,我们上午也说了,你这样记吧,我们上午是不是举了例,Partition呢?Partition吧啊,那个加ED的是不是建表语句里面的啊,建表你不要把它看作简单的一个分区啊,那是建分区表,那这块呢,就是class by ID。
04:01
就将来分头,你要按哪个字段进行分头。好这块呢,就能看出来跟。是吗?分区的区别了吧,分区那个字段是一个什么。是一个新字段。当时我们是不是把ID,什么name,然后partition by什么month,然后还有逗号,对是不是一个新字段啊,也就是说分区字段等于你额外加了一个字段,但是分土不是的,它是对你这个表里边原有的字段是什么。分桶啊进行分桶,将来呢,按照这个字段进行分区,好,除了这个之外,你还要告诉他分几个桶。啊,下面呢,INTO48啊,放到四个桶里边这个,而且我们之前类比了,就分图表,相当于MR当中的一个分区。那这块呢,将来他就会走四个什么维啊,输出到四个文件,也就这个意思,好,那我们把这个复制一下。
05:06
啊,表给他创建好。表给大家好,现在表有了,数据本地文件是不是也有了,那按照正常来说,我们是不是应该把数据给它加载进来?对吧,那我们加载进来看一下,漏的叫local。In pass对吧,哎,这个地方呢,我们还是拿一下这到力。不上,然后呢,我刚才写的是student.into。Table。然后。这个,那目前来说我们只能做到这些了。如果说它加载失败,那我们可能就想着跟分区表一样,是不是要指定一个组,是不是这种逻辑啊,啊,我们先直接这样啊走一下。诶,导进去了。导进去了,好,导进去之后我们来看一下这个地方。这块呢,肯定有它的一个什么表的一个路径。
06:02
在student是吧,这个。发现我们刚才说了,你不是说这个东西会分四个文件吗?怎么还是一个文件。对吧?来想一想我们之前所说的漏的命令,它其实是做的什么事?它是不是put进去的呀,对吧?哎,它是put进去,所以你想想看,让我正常的我哈一个命令,我put一个命令上去。我会分成四份吗?不会啊,所以这种不行,那有什么办法。就像我们所说的,现在你铺的不行,那有什么办法,我们想一下就是漏命令呢,不行对吧,那除除了load命令导入数据之外,我们想其他的。有没有可能会将数据分开呢?而且他必须还要读这个ID是不是?因为我们是按ID进行什么。分头,那必须他要读到ID对我们ID静音哈希分区吧。
07:04
那要走什么东西才可以,才可能有这种情况,是不是要走MR?对吧,要走开发行任务,好,那我们先把这张表呢,先给它清空了。窗开了对吧,窗开了table。这个bug走好清空了,清空之后呢,这个数据就没了,这没问题吧,好,然后按照我们刚才所说的,那这个是不是应该要一个做MR任务呢,来。走M任务呢,我们先应该建立一个什么普通的表吧,啊,建立一个普通表非分区别啊,然后给它加载进来,好,然后呢,这张表Su啊,这是普通的非分区非分筒的对吧,那我们要把这张表做M25,给它放到分通表里面,我们看一下。那怎么写?还记得吗?色的,然后叫发现。
08:01
然后呢?Select行可以吧,From这个Su这张表啊走一下,那我们走MR来试一下,那因为走MR是不是一条数据一条数据读啊啊读了写出去吧,我们看一下。嗯。对,有同学记得对啊,这个没有数据吧,因为ST表刚才忘到数据了,对吧。啊,那走完啊,应该是空的。然后呢,啊方式有问题,假如说它方式有问题,我把这个表重新清空一下,对吧,那我漏了一下data叫local。Impulse。然后在猫底下有一个data,他底下一个丢的点。SD啊,我们先导到这个什么SQ这张表里面,对吧,我们刚才见了一个SQ这张表走一下,嗯。
09:03
啊,Table。你table啊,走一下好啊,那这个时候呢,Sto表已经有了。呃,Sto表之前刚才串的时候没报错呀。哦,我知道之前建的SQ表示一个那个,之前建了一个那个外部表,然后把它删了之后,他这个是原来数据还有吧,呃,原来的数据那我们得把它清了。啊创态板,然后是这个。重新导一下,重新导一下,然后把这个数据呢,我们恢复到这个状态。这没问题了吧,啊,是我们要的那16条数据,然后呢,我们重新写一下。下划线bug对吧。然后。新from这个S这张表啊,给它导进去,我们看一下我们用MR是不是会给我们分区啊,就是分成三个四个不同的文件。
10:08
因为我们现在知道漏,它是直接将数据铺上去的,那没办法,不可能说给你分什么四个文件啊,不可能说分四个文件,好这个走完了,走完之后我们先查一下有没有数据,对吧。啊,数据没问题对吧,因为你经色的进来了啊,来接下来看一下这个地方。缩写。还是一个。啊,还是一个,也就是说你想要分筒表,不是说这么简单的用的啊,还有一点东西来看一下,在这第一呢,我们第二次发现还是只有一个分筒啊,我们要设置一些属性设置。第一个。开启酸痛功能。这第一个,第二个。将它re个数设置为负一,负一代表什么意思呢?是这样的,负一代表它自己会根据同的个数来决定reduce个数。
11:08
啊,负一的情况时,负一就等于不不指定,如果说你指定了三个,你分四个,最后出现三个文件,这也不合适吧,就按照让它自己四个桶,也就是说V6这个参数你不管。啊,就做这个事了,好来,我们把这两个属性给它设置一下,我先把这张表清空一下,因为它里面有数据了。状态。Table s to_Bo CK啊清空清空之后呢,我们设置一下这两个属性。也就是说,其实分头表用起来还是挺麻烦的,还挺麻烦的。DOS。负一其实这个也可以不用设,因为默认值是什么负一我们之前都看过对吧?啊看过好最后呢,我们insert。Into。Table,然后sto下划线用CK。K,好,然后是select from这个S这张表对吧,走一下。
12:10
来看一下这。Reduce tasks。四个啊,这四我们是不是明明设置了负一啊,啊,这个四就来自于我们当前这张表的统数啊。好,看这个执行结果应该差不多吧,对吧,啊1/14的OK来刷新。四个对吧,四个,那我们再来查一下这个数据select的新。From。Sto_BOK。来看这个数据的顺序。其实他并不乱。四是不是跟四取的呀,啊取模的啊,跟四五取模的,而且呢,是不是拿到我们所说的ID啊。
13:04
啊,拿着我们ID来做的,也就是说这个时候呢,它是将数据按照不同的字段啊,按照同一个字段里面不同的值,放到了不同的文件里面。啊,放到了不同的文件里边,那你想一下这个东西。是不是跟我们之前所讲的。那个MR当中的分区是一样的。对不对,对吧,因为之前mmr当中,假如说我要按照某一个K来进行分区,它是不是按照K的那个什么哈希值,然后把它放到不同的文件里边的,对吧?啊,所以说这个里边它分区表叫分区,但实际上跟我们MR分区不同,这块呢,它又叫分同表,但是呢,跟MR当中的分区。有一点相似啊,有点相似,所以说这一块千万不要混了,不要看着它都叫分区,以为它是同一个概念,其实它不一样。啊,其实它是不一样的,它这是我们说的一个分筒,它的好处就在于它是不是按照我们字段的规律,将我们数据给它隔离开来。
14:04
啊,假如说你要用某一个,你可以对某一个去用啊,某一个就用成这样的,好,接下来还有一个点更多的分钟秒用在什么时候呢?用在这。抽样查询啊,我们先把这个解一下啊。
我来说两句