00:00
好,当我们经过案例一之后,将这个数据导入到h base之后呢,我们来介绍正经的在开发当中你会遇到的h base和have集成的这么一个场景,就是说h base里面已经存储了这么一张表,这个表里面呢,按照h base自身的一些结构存储了大量的一个数据,这时候呢,你需要在have里面创建一个外部表来关联这张表,之后借助have来分析h base这张表里面的数据,这个在实际开发里面是有可能遇到的,他最开始也没有跟任何人集成啊,H自身没有跟任何人集成,就不断的往里面写数据,已经写了有一个T的数据了。这个数据量很大了,对吧,你说把这个数据迁移到别的位置再进行分析处理,那太麻烦了,这数据迁移很费劲对吧?那这时候呢,有一个非常简便的方法,直接把have套在这个既有的表格和数据上面,用have呢就能够去分析这个数据啊,所以呢,大家就不要问为什么你不直接按照案例一里面导入的数据直接在have里面分析了,我们模拟的不是这种场景吧,我们模拟的场景呢,就是数据已经存出去了,它不是原先就跟have进行一个这个集成的啊,我们是是已经有一些杂乱无章的数据了,然后我们需要去对它进行一个操作,怎么操作呢?这个就非常简单了啊,我们可以直接在have里面创建外部表,去映射h base里面的这张表,我们把这个命令呢,给它粘过来看一下啊,跟上面创建一个关联表的命令呢,差不太多啊,只是有些细节呢,你需要把握一下。
01:28
这是一个外部表,我们一般用have进行数据分析处理的时候,都会写外部表,对吧?都会使用外部表,好,这里呢给表起一个名字,这些呢是字段名,现在这个对应关系就反过来了。最下面的这个表名一定是你想要去映射的那个表名,不能是你之前创建表随便起的了,其次呢,这个columns mapping啊,映射关系一定是这个地方是已经存在于你的H里面了,对应的来映射这么一个一个位置里面的数据啊,等你把这些全部写完了,就这些啊,一定是真实存在的,对不对,全部都给它写完了,就可以去创建这个外部表了,那我们CTRLC。
02:10
好,对应的在have里面去执行这个见表的一个语句。分号直径。创建完这个建表语句之后呢,我们来看一下这个表名对吧?哎,这个表名呢叫。这个名字对吧,反正C我们首先呢,执行一些基础的操作,比方说select星from这张表啊,来把这个表的数据呢都读一下啊,那这个肯定是没有问题的,接下来我们就可以进行一些复杂的一个high口的数据分析了啊,比方说文章里面写的这个啊呃,部门的平均薪资看到了啊,部门的平均薪资这个其实比较简单对吧,咱们来写一下select啊,DEP no啊,这是他部门的一个编号对吧,然后逗号啊avg。啊,平均数,平均数里面我们要写上对应的这么一个薪水啊,这个列名呢,我们可以到建表里面去拿啊,叫sal sal对吧?啊叫al啊,好money money啊,我们给它写上这个啊,新的一个列名from这么一张表啊,这个where。
03:15
微热是过滤对吧,咱们A。他每次这个过一段时间呢,会打印一个信息跟组K的一个连接啊,这个一闪而过啊,导致我这个circleq写错了对吧?好,咱们重新来啊,这个V呢,不需要啊,Where呢,我们应该是group by啊group by DEP。PT no对吧,哎,分号分号执行。好,如果你用黑口来跑的话呢,它还是会跑这个MR的一个程序啊,我们还是需要去等待它运行一下这个MR程序啊呃,本质上呢,跟你之前的使用have呢是没有区别的,只是这个数据源发生了变化,我们用什么数据源呢?用直接存在h base里面的一个数据了啊呃,关于have跑这个,呃,S以及它底层一个隐形优化呢,你可以参考我们上硅谷别的课程啊,我们这个h base跟have的兼容呢,就仅仅简简单单是来使用一下。
04:12
好,经过漫长的等待啊,他终于跑完了啊,那跑完之后呢,我们就可以在这边看到他最终的一个结果了,这边是部门的ID,这边呢是部门的平均薪资,对吧?啊,你如果想有别的需求的话呢,你可以到have的课程里面相对应的去学习,都是可以实现的啊。
我来说两句