温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,那因为刚才我们说了这一块呢,可能经常会考到一个面试题,就是把这四个BY呢放在一起去比较,那我们稍微的对这块东西做一个总结,呃,首先呢,奥特曼它是做全局排序的,无论我们对user的个数做了怎么样的设置,它都只有一个啊,它都只有一个全局去排的,效率相对来说比较低啊,效率相对来比较低,后面呢,其实在公司当中啊,就刚才我们那个outb的语句是不让运行的,运行不了直接报错啊,但是我们要加一个参数就好了,但是后面我们优化的时候要去聊的,因为它效率太低了,我们这个才十几条数据,对吧,生产环境当中数据太多了,你这个任务一般是跑不成功的,放一个reduce里面去排序,你想想看嘛,对吧,做全局排序根本就跑不成功啊,根本就跑不了,如果说上千万条或者说上一条数据的时候。
01:00
根本就跑不了这个东西,一个radior扛不住的,对吧?啊,所以说他呢,后面还要做对他做专门的优化公司当中呢,你如果说光推出的说现在什么东西FROM1张表out这个语句就过不了,就不让运行啊,就启动启动不了,现在我们是默认的配置是没有关系的,后面呢,我们要改这些配置啊,好那么接下来呢,第二个是我们所看到的叫so。So派它是干嘛用的,排它是区内排序对吧?如果单独使用这个so派的时候,它是随机来划分它的数据所在区的随机的,对吧?那往往so by是跟着谁一起连用啊,Distribute by distri by呢,跟一个字段来帮助我们进行分区,然后so by排序对吧?So by序排序啊,在区内去做排序啊,是这样子,当Dis和solid字段相同的时候,而且呢,也是正常的asc,就是升序的时候,我们是不是可以用哪一个叫class by来代替它呀,对吧?啊就是在这种时候,这是四个bad的一个总结啊,一个区别和联系。
02:20
是吧,那大家可以想一下,之前我就在上第一堂课的时候告诉大家,你在这个时候写的每一个so呢,你都去想一想,这个地方如果说让你用MR来实现,你应该怎么实现,不会是吗?就这些个需求用来实现,不会是吗?
我来说两句