4. Multi-group by 是hive的一个非常好的特性,请举例说明?
from A insert overwrite table B select A.a, count(distinct A.b) group by A.a insert overwrite table C select A.c, count(distinct A.b) group by A.c |
5. 请说明hive中 Sort By,Order By,Cluster By,Distrbute By各代表什么意思。
order by:会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)。只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。 sort by:不是全局排序,其在数据进入reducer前完成排序。 distribute by:按照指定的字段对数据进行划分输出到不同的reduce中。 cluster by:除了具有 distribute by 的功能外还兼具 sort by 的功能。 |
6. 简要描述数据库中的 null,说出null在hive底层如何存储,并解释selecta.* from t1 a left outer join t2 b on a.id=b.id where b.id is null; 语句的含义
null与任何值运算的结果都是null, 可以使用is null、is not null函数指定在其值为null情况下的取值。 null在hive底层默认是用'\N'来存储的,可以通过alter table test SET SERDEPROPERTIES('serialization.null.format' = 'a');来修改。 查询出t1表中与t2表中id相等的所有信息。 |
7. 写出hive中split、coalesce及collect_list函数的用法(可举例)。
Split将字符串转化为数组。 split('a,b,c,d' , ',') ==> ["a","b","c","d"] COALESCE(T v1, T v2, …) 返回参数中的第一个非空值;如果所有值都为 NULL,那么返回NULL。 collect_list列出该字段所有的值,不去重 select collect_list(id) from table; |
8. 写出将 text.txt 文件放入 hive 中 test 表‘2016-10-10’ 分区的语句,test 的分区字段是 l_date。
LOAD DATA LOCAL INPATH '/your/path/test.txt' OVERWRITE INTO TABLE test PARTITION (l_date='2016-10-10') |
最后总结
搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析
最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化
[外链图片转存中…(img-bdhWzefY-1714297431652)]