携程-酒旅-数据研发面经【附答案】
来源:2025年4月面试辅导同学全程分享【已拿23Koffer】
推荐阅读文章列表
2025最新大数据开发面试笔记V6.0——试读
我的大数据学习之路
面试聊数仓第一季
1.八股文
1)MapReduce如何实现两表的JOIN
参考面试笔记V6.0 Hive篇第7题,部分答案如下:
- JOIN分为common join和map join,common join就是join发生在reduce端,map join就是join发生在map端
2)Hive的存储格式有哪些
参考面试笔记V6.0 Hive篇第14题
3)HQL解析的原理是什么
参考面试笔记V6.0 Hive篇第1题
4)Hive导入数据有几种方式
参考面试笔记V6.0 Hive篇第16题(补充),答案如下:
- 本地文件导入到Hive表:
load data local inpath xxx overwrite into table xxx
- HDFS文件导入到Hive表:
load data inpath xxx overwrite into table xxx
- 一张Hive表导入到另一张Hive表:
insert overwrite table xxx2 select * from xxx1
- 创建Hive表时从另外一张Hive表导入:
create table xxx2 as select * from xxx1
5)Spark SQL的Join有几种方式
参考面试笔记V6.0 Spark篇第20题
6)Spark代码发生数据倾斜,你是如何定位到哪段代码问题的
参考面试笔记V6.0 调优技巧篇,部分答案如下:
7)Spark任务慢,如何通过调整参数来提升时效
参考面试笔记V6.0 Spark篇第4题和第27题
8)ER模型和维度建模的优缺点
参考面试笔记V6.0 数仓理论篇第5题,部分答案如下:
- ER模型冗余更少,但在大规模数据跨表分析中,会造成多表关联,大大地降低计算效率
2.项目
1)项目中的难点是什么?
2)数仓中的数据是如何流转的?
3)项目中的数据血缘是如何管理的?【Atlas开源工具 或者 ParseDriver解析工具】
后续分享我是如何通过ParseDriver来构建数据血缘的
3.刷题
SQL题:给定一个打卡表(部门id,用户id,打卡时间),求每个部门打卡频次前10的员工
select dept_id, uid
from (select dept_id,uid,row_number() over(partition by dept_id order by cnt desc) rkfrom (selectdept_id,uid,count(distinct dt) as cntfrom t1group by dept_id, uid) t
) t
where rk <= 10