面试小问题集锦

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;)

posted on 2020-09-12 08:31  大鹏的鸿鹄之志  阅读(66)  评论(0编辑  收藏  举报