SQL → Hive → Python 数据分析 → 机器学习 / AI 基础
【代码】SQL → Hive → Python 数据分析 → 机器学习 / AI 基础。
·
SQL → Hive → Python 数据分析 → 机器学习 / AI 基础每个模块:
- 必学知识点
- 最简解释
- 直接可用代码
- 面试必考点
一、SQL 核心(最最重要,全部掌握)
1. 基础查询
知识点
- SELECT:查字段
- FROM:从哪张表
- WHERE:过滤条件
- DISTINCT:去重
- ORDER BY:排序
- LIMIT:限制行数
代码
sql
-- 基础查询
SELECT user_id, dt, behavior FROM user_log;
-- 条件过滤
SELECT * FROM user_log WHERE dt = '2025-01-01';
-- 去重
SELECT DISTINCT user_id FROM user_log;
-- 排序
SELECT * FROM user_log ORDER BY user_id ASC;
-- 限制行数
SELECT * FROM user_log LIMIT 10;
2. 聚合与分组(必学)
知识点
- COUNT/SUM/AVG/MAX/MIN
- GROUP BY 分组
- HAVING 过滤分组结果
代码
sql
-- 统计日活
SELECT dt, COUNT(DISTINCT user_id) AS dau
FROM user_log
GROUP BY dt;
-- 分组过滤
SELECT dt, COUNT(*) AS cnt
FROM user_log
GROUP BY dt
HAVING COUNT(*) > 100;
3. 多表联查 JOIN(必学)
知识点
- LEFT JOIN:左表全保留
- INNER JOIN:只保留匹配
- RIGHT JOIN / FULL JOIN(了解)
代码
sql
SELECT a.user_id, a.dt, b.device_type
FROM user_log a
LEFT JOIN user_info b
ON a.user_id = b.user_id;
4. 子查询(了解)
sql
SELECT user_id
FROM user_log
WHERE user_id IN (SELECT user_id FROM user_info WHERE age >= 18);
5. 窗口函数(面试必考,重中之重)
(1)排名函数
sql
-- 分组内排序
SELECT
user_id,
dt,
ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY dt) AS rn
FROM user_log;
(2)累计 / 分区计算
sql
-- 按用户累计金额
SELECT
user_id,
dt,
amount,
SUM(amount) OVER(PARTITION BY user_id ORDER BY dt) AS cum_amount
FROM order_log;
(3)取首次 / 末次
sql
SELECT
user_id,
dt,
FIRST_VALUE(dt) OVER(PARTITION BY user_id ORDER BY dt) AS first_dt
FROM user_log;
6. 互联网业务必背 SQL(面试直接写)
(1)DAU 日活
sql
SELECT dt, COUNT(DISTINCT user_id) AS dau
FROM user_log
GROUP BY dt;
(2)7 日留存(必考)
sql
WITH 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;
二、Hive 核心(OPPO 硬性要求)
1. Hive 基础概念
- Hive = 把 SQL 转成 MapReduce/Spark 执行
- 数据存在 HDFS,元数据存在 MySQL
- 适合海量离线数据计算
2. 内部表 / 外部表 / 分区表(必背)
知识点
- 内部表:删除表,数据也删
- 外部表:删除表,HDFS 数据还在
- 分区表:按日期 / 地区分区,查询极快
代码
sql
-- 外部分区表(企业最常用)
CREATE EXTERNAL TABLE user_log (
user_id STRING,
behavior STRING
)
PARTITIONED BY (dt STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/warehouse/user_log';
3. 加载数据
sql
LOAD DATA INPATH '/user/data/log.txt' INTO TABLE user_log PARTITION (dt='2025-01-01');
4. Hive 最重点:数据倾斜(面试必考)
现象
- 大部分任务很快,某一个 Reduce 卡死不动
原因
- 某一个 key 数据特别多
解决(背下来)
- 给 key 加盐
- 参数调优
- 分开运行大 key + 小 key
三、Python 数据分析核心
1. Pandas 必学操作
知识点
- 读取文件
- 筛选、过滤
- 去重、缺失值
- 分组聚合
代码
python
运行
import pandas as pd
# 读取
df = pd.read_csv('data.csv')
# 查看
df.head()
df.info()
df.describe()
# 去重
df = df.drop_duplicates()
# 缺失值
df = df.dropna()
df['age'] = df['age'].fillna(0)
# 筛选
df = df[df['age'] >= 18]
# 分组聚合
result = df.groupby('dt')['user_id'].nunique().reset_index()
result.columns = ['dt', 'dau']
2. 可视化 Matplotlib(必学)
python
运行
import matplotlib.pyplot as plt
plt.bar(result['dt'], result['dau'])
plt.title('DAU')
plt.xticks(rotation=30)
plt.show()
3. MySQL 入库
python
运行
import pymysql
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://user:password@ip:3306/db')
df.to_sql('result_table', engine, if_exists='append', index=False)
四、机器学习 & AI 基础(满足 OPPO 要求)
1. 必学算法(只学这两个)
逻辑回归(分类)
python
运行
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X = df[['age', 'score']]
y = df['label']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))
决策树 / 随机森林
python
运行
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
2. AI 基础(会说就行)
- 机器学习:从数据学规律,做预测
- 训练:给模型学习
- 预测:用模型算结果
- 能调用接口、能复现简单模型 = 满足实习要求
五、你必须做的 2 个项目(简历直接写)
项目 1:Hadoop + Hive 用户行为分析
- 搭建 Hadoop 伪分布式
- 建 Hive 分区表
- 计算 DAU、留存、活跃分布
项目 2:Python 全流程数据分析
- 数据采集 → 清洗 → 入库 → 分析 → 可视化 → 算法模型
六、极简总览(你照着学,全覆盖)
你只需要掌握以下内容,就 100% 满足 OPPO:
- SQL:基础、分组、JOIN、窗口函数、DAU、留存
- Hive:内外表、分区表、数据加载、数据倾斜
- Python:Pandas 清洗、分组、可视化、MySQL 入库
- 算法:逻辑回归、随机森林、模型训练预测
- 项目:2 个完整项目(Hive 日志分析 + Python 全流程分析)
更多推荐


所有评论(0)