面试小问题集锦
1,怎么评价数仓的好坏
2,数仓是怎么组织的?规范是什么?
2,哪个阶段可能会发生shuffle
3,用两个key关联会有几个MR
4,数据倾斜怎么处理的?你是怎么发现的呢? explai查看语句后,里面用的什么算法?
5,
4,删除表发现类似死机现象有什么原因造成的
5,断层排序(实现出排序的效果)
stu_id 是否有效 排序
123 1 1
234 1 2
23456 1 3
324 0 1
213 0 2
657 1 1
8765 1 2
8769 1 3
GROUPING SETS 和group by 的区别
GROUPING SETS在遇到多个条件时,聚合是一次性从数据库中取出所有需要操作的数据,在内存中对数据库进行聚合操作并生成结果。而UNION ALL是多次扫描表,将返回的结果进行UNION操作.这也就是为什么GROUPING SETS和UNION操作所返回的数据顺序是不同的.
grouping sets的执行方式在group by后面有多列的时候,grouping sets带来的性能提升非常明显
1,面试这个岗位你有什么优势?
2,你最难忘/最满意的项目是哪个?
3,你觉得你在上家公司的欠缺是什么?
4,你对我们公司打分能打几分?为什么 有哪些需要改进的地方?
5,相比如现在,你最想在我们公司有哪些成长,最看中什么?
Hive怎么实现行转列:
1、问题
hive如何将
a b 1
a b 2
a b 3
c d 4
c d 5
c d 6
变为:
a b 1,2,3
c d 4,5,6
处理:
select
col1,
col2,
concat_ws(',',collect_set(col3))
from
tmp_bsf_test
group by
col1,col2;
hive内部表与外部表区别详细介绍:
未被external修饰的是内部表(managed table),被external修饰的为外部表(external table);
区别:
内部表数据由Hive自身管理,外部表数据由HDFS管理;
内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里);
删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)