数据分析岗高频 20 题 + 标准答案

张开发
2026/4/16 8:21:19 15 分钟阅读

分享文章

数据分析岗高频 20 题 + 标准答案
一、SQL 高频题必考 6 题1. 什么是窗口函数常用的有哪些答窗口函数是对分组后的每一行数据进行计算不减少行数。常用ROW_NUMBER() / RANK() / DENSE_RANK()排名SUM() / AVG() OVER(PARTITION BY ... ORDER BY ...)累计、分区计算FIRST_VALUE() / LAST_VALUE()取首次 / 末次值2. 怎么计算 DAU日活用户sqlSELECT dt, COUNT(DISTINCT user_id) AS dau FROM user_log GROUP BY dt;3. 怎么计算 7 日留存必考sqlWITH t1 AS ( SELECT user_id, MIN(dt) AS first_dt FROM user_log GROUP BY user_id ) SELECT t1.first_dt, COUNT(DISTINCT t1.user_id) AS new_user, COUNT(DISTINCT CASE WHEN a.dt t1.first_dt 7 THEN a.user_id END) AS retain_7d FROM t1 LEFT JOIN user_log a ON t1.user_id a.user_id GROUP BY t1.first_dt;4. LEFT JOIN 和 INNER JOIN 区别答INNER JOIN只保留两边都能匹配的数据。LEFT JOIN左表全部保留右表匹配不上显示 NULL。5. GROUP BY 和 PARTITION BY 区别答GROUP BY分组聚合行数会变少。PARTITION BY分组开窗行数不变对每行计算。6. 你遇到过哪些 SQL 优化答WHERE先过滤减少数据量少用SELECT *只查需要字段大表JOIN前先过滤避免DISTINCT嵌套多层二、Hive 大数据必考 5 题7. Hive 是什么答Hive 是基于 Hadoop 的数据仓库工具把 SQL 翻译成 MapReduce/Spark 任务用来处理海量离线数据。8. 内部表和外部表区别高频答内部表Hive 管理数据删表 数据也删。外部表数据在 HDFS删表 只删元数据数据还在。企业里几乎都用外部表。9. 为什么要用分区表答按日期 / 地区分区查询时只扫描对应分区大幅提升速度、减少资源。10. 什么是数据倾斜必问答大量数据集中到某一个 Reduce导致个别任务卡死、整体很慢。11. 数据倾斜怎么解决答给 key 随机加盐打散数据参数调优调整并行度把大 key 和小 key 分开计算三、Python 数据分析4 题12. Pandas 怎么处理缺失值答df.dropna()直接删除df.fillna(0)填充 0 / 均值 / 中位数13. 数据清洗一般做什么答去重drop_duplicates()处理缺失值、异常值字段格式统一、类型转换剔除无用数据14. 怎么把数据写入 MySQLpython运行from sqlalchemy import create_engine engine create_engine(mysqlpymysql://user:passwordip:3306/db) df.to_sql(table, engine, if_existsappend, indexFalse)15. 用过哪些可视化库画过什么图答Matplotlib / Seaborn。画过柱状图、折线图、饼图、热力图用于展示 DAU、留存、用户分布。四、机器学习 AI4 题16. 监督学习和无监督学习区别答监督有标签如分类、预测。无监督无标签如聚类。17. 逻辑回归用来做什么答解决二分类问题比如预测用户是否流失、是否点击、是否购买。18. 随机森林优点答多棵决策树集成不容易过拟合能处理非线性关系输出特征重要度19. 你对 AI 了解多少答了解机器学习基本流程数据采集 → 清洗 → 特征工程 → 模型训练 → 评估 → 预测。能用 Python 复现简单模型也能调用 AI 接口做文本分类 / 情感分析。五、项目 业务1 题必问20. 介绍一下你做过的数据分析项目直接背这套模板最稳我做过两个项目基于 Hadoop Hive 的用户行为日志分析独立搭建 Hadoop 伪分布式集群用 Hive 建分区表做数据清洗和离线计算统计 DAU、用户留存、活跃分布熟悉大数据离线分析流程。Python 全流程数据分析从数据采集、清洗、入库到多维度分析、可视化再到用逻辑回归 / 随机森林做预测完整走了一遍数据分析链路。最后一句万能收尾非常加分“我能熟练使用 SQL、Hive、Python 做数据分析理解业务指标能把业务问题转化成数据问题。”hive中数据倾斜是什么应该怎么解决我现在用超级通俗、考试必背、面试必问的方式把Hive 数据倾斜一次性讲得清清楚楚、完全不抽象。一、什么是数据倾斜最简单人话数据倾斜 数据分布不均匀某一个 Key 特别多其他 Key 很少。比喻最形象一群人搬砖99 个人分到很少砖轻松1 个人分到 90% 的砖累死拖慢整个任务结果整个任务的速度 跑得最慢的那一个人的速度这就是数据倾斜。专业一句话某些 key 数据量巨大导致单个 reducer 处理不完任务卡住、跑很久、甚至 OOM。二、最常见倾斜场景必考group by 倾斜某个值特别多如 null、空字符串、0、默认值join 倾斜某一关联键特别多如 user_id0、城市 北京count (distinct) 倾斜某值重复极多三、Hive 数据倾斜怎么解决考试 / 面试 6 大标准答案我给你最精简、最容易背、绝对得分的版本1参数开启自动倾斜优化最简单sqlset hive.groupby.skewindata true;原理先局部聚合再全局聚合把大 Key 拆开分给多个 reduce。2给倾斜 Key 加随机前缀最常用把倾斜的 Key如null变成null_1、null_2、null_3...打散数据让多个 reduce 一起处理3空值 / 无效值单独处理null 不参与 join 或单独过滤sqlwhere id is not null因为null 最容易造成倾斜。4大表 join 小表 → 使用 MapJoin把小表加载到内存不走 reduce直接在 map 端 join彻底避免倾斜。5Skew Join 自动处理倾斜sqlset hive.optimize.skewjoin true;Hive 自动把倾斜 key 单独用多线程并行处理。6拆分 SQL大 Key 单独算小 Key 正常算先把倾斜 key 抽出来单独计算再和正常数据 union all四、超级精简总结考试直接默写什么是数据倾斜部分 key 数据量过大导致单个 reduce 执行过慢拖慢整体任务。解决方法背这 6 条满分开启hive.groupby.skewindatatrue倾斜 key加随机前缀打散过滤null / 空值小表 join 大表使用mapjoin开启skewjoin自动优化倾斜数据单独计算再合并五、最牛一句话口诀终生不忘数据不均就是倾斜单台累死拖慢全局。加前缀、开参数、滤空值、用 mapjoin大 key 拆分小 key 广播倾斜轻松解决

更多文章