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 ---------- 
相关推荐
爱吃火鸡面呀3 小时前
HDFS 文件读取流程深度解析:从客户端请求到数据落地的完整链路
大数据·hadoop·hdfs
程序员小羊!3 小时前
医疗数据仓库ODS层敏感信息防护实战:7大关键策略
数据仓库
kaoa0004 小时前
Linux入门攻坚——89、Hadoop-1-架构及概念
大数据·linux·hadoop·分布式
BYSJMG5 小时前
计算机毕业设计选题推荐:基于大数据的水质多指标关联分析与可视化的设计与实现,Spark 加 K-Means 做水质分群
大数据·hadoop·信息可视化·数据分析·spark·kmeans·课程设计
计算机源码社6 小时前
【大数据项目实战】基于Python数据挖掘的新能源车充电行为关联风险分析研究-基于Hadoop+Spark的电动汽车故障多维数据可视化
大数据·hadoop·python·数据挖掘·spark·毕业设计·课程设计
欢迎来到祖安!9 小时前
企业微信 API 接口能力介绍:支持消息收发、图片发送、表情互动、联系人管理等多场景应用
java·前端·数据仓库·spring cloud·企业微信
磁场转动100万匹1 天前
大数据入门:Hadoop 与 MapReduce 学习路线
大数据·hadoop·mapreduce
崖边看雾1 天前
Hadoop —— HDFS 写数据流程
大数据·hadoop·hdfs
陈年老古董1 天前
Python模拟MapReduce分治思想 | 从单文件统计到大文件拆分聚合 学习笔记
开发语言·hadoop·笔记·python·学习
崖边看雾1 天前
Hadoop —— HDFS 读流程
大数据·hadoop·hdfs