Hive综合应用案例——用户学历查询

第一关 查询一个用户从出生到现在的总天数

sql 复制代码
---------- 禁止修改 ----------
drop database if exists mydb cascade;
---------- 禁止修改 ----------


---------- begin ----------
---创建mydb数据库
CREATE DATABASE mydb;

---使用mydb数据库
USE mydb;

---创建表usertab
CREATE TABLE usertab (
    id INT, 
    sex STRING,
    time STRING,
    education STRING,
    occupation STRING,
    income STRING,
    area STRING,
    desired_area STRING,
    city_countryside STRING 
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';


---导入数据:/root/data.txt
LOAD DATA LOCAL INPATH '/root/data.txt' INTO TABLE usertab;


---查询每一个用户从出生到现在的总天数
SELECT 
    id,
    DATEDIFF('2019-06-10', TO_DATE(REPLACE(time, '/', '-'))) AS days_since_birth
FROM usertab;


---------- end ----------

第二关 同一个地区相同的教育程度的最高收入

sql 复制代码
---------- 禁止修改 ----------
drop database if exists mydb cascade;
---------- 禁止修改 ----------


---------- begin ----------
---创建mydb数据库
CREATE DATABASE mydb;

---使用mydb数据库
USE mydb;

---创建表usertab1
CREATE TABLE usertab1 (
    id INT, 
    sex STRING,
    time STRING,
    education STRING,
    occupation STRING,
    income INT,
    area STRING,
    desired_area STRING,
    city_countryside STRING 
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

---导入数据:/root/data1.txt
LOAD DATA LOCAL INPATH '/root/data1.txt' INTO TABLE usertab1;

--同一个地区相同的教育程度的最高收入
SELECT 
    area, 
    education, 
    MAX(income) AS max_income
FROM usertab1
GROUP BY area, education
ORDER BY area, 
         CASE education 
             WHEN '专科' THEN 1
             WHEN '本科' THEN 2
             WHEN '硕士' THEN 3
             ELSE 4
         END;

---------- end ----------

第三关 统计各级学历所占总人数百分比

sql 复制代码
---------- 禁止修改 ----------
drop database if exists mydb cascade;
set hive.mapred.mode=nonstrict;
---------- 禁止修改 ----------
 
 
---------- begin ----------
----创建mydb数据库
CREATE DATABASE mydb;
 
---使用mydb数据库
USE mydb;
 
---创建表user
CREATE TABLE usertab2 (
    id INT, 
    sex STRING,
    time STRING,
    education STRING,
    occupation STRING,
    income STRING,
    area STRING,
    desired_area STRING,
    city_countryside STRING 
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
 
---导入数据:/root/data.txt
LOAD DATA LOCAL INPATH '/root/data.txt' INTO TABLE usertab2;
 
--查询
SELECT 
    CONCAT(ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 2), '%') AS percentage,
    education
FROM usertab2
GROUP BY education
ORDER BY education;
---------- end ---------- 
相关推荐
知识分享小能手18 小时前
Hadoop学习教程,从入门到精通,Flume日志采集系统 — 完整知识点与案例代码(9)
hadoop·学习·flume
Francek Chen2 天前
【大数据处理与分析】MapReduce:06 MapReduce编程实践
大数据·hadoop·分布式·mapreduce
王小王-1232 天前
基于 Hadoop 的二手房数据分析与可视化平台项目展示
大数据·hadoop·数据分析·大数据房价分析·二手房价格预测·hive房价数据分析
知识分享小能手2 天前
Hadoop学习教程,从入门到精通, HBase 分布式数据库 — 完整知识点与案例代码(8)
数据库·hadoop·分布式
王小王-1232 天前
基于 Hadoop 的心脏病分析可视化与风险预测系统
大数据·hadoop·分布式·心脏病预测系统·疾病预测·冠心病风险预测
TPBoreas2 天前
springboot3.5比2.x做了哪儿些提升
数据仓库·hive·hadoop
Nefu_lyh3 天前
【Hive】七、Hive 函数:聚合 / 统计 / 分位数 / 集合 / 高级分组
数据仓库·hive·hadoop
阿 才3 天前
跟文件系统(busybox)的构建
大数据·hadoop·分布式
KANGBboy4 天前
hive UDF函数
数据仓库·hive·hadoop
暴躁小师兄数据学院4 天前
【AI大数据工程师特训笔记】第15讲:大数据环境安装
大数据·hadoop·flink·spark