Hive 数据处理实战:员工信息分析
Hive 数据处理实战:员工信息分析
本文将通过一个具体的案例,演示如何使用 Hive 处理员工信息数据,涵盖创建表、数据导入、排序、筛选、统计等操作。
任务描述
现有一份职工数据 emp.csv,记录了公司职工的姓名、职工编号等信息,部分数据如下表。(注:emp.csv 的数据分割符为 ',', mpno 为职工编号,ename 为职工姓名,job 为工作职位,sal 为薪资,deptno 为员工所在部门编号)
| mpno | ename | job | sal | deptno | |---|---|---|---|---| | 7369 | SMITH | CLERK | 800 | 20 | | 7499 | ALLEN | SALESMAN | 1600 | 30 | | 7521 | WARD | SALESMAN | 1250 | 30 | | 7566 | JONES | MANAGER | 2975 | 20 | | 7654 | MARTIN | SALESMAN | 1250 | 30 | | 7698 | BLAKE | MANAGER | 2850 | 30 | | 7782 | CLARK | MANAGER | 2450 | 10 | | 7788 | SCOTT | ANALYST | 3000 | 20 | | 7839 | KING | PRESIDENT | 5000 | 10 | | 7844 | TURNER | SALESMAN | 1500 | 30 | | 7876 | ADAMS | CLERK | 1100 | 20 | | 7900 | JAMES | CLERK | 950 | 30 | | 7902 | FORD | ANALYST | 3000 | 20 | | 7934 | MILLER | CLERK | 1300 | 10 |
任务步骤
1. 启动 Hive 集群服务
start-all.sh
service mysql start
hive --service metastore &
2. 创建 Hive 表
CREATE TABLE emp(
mpno INT,
ename STRING,
job STRING,
sal DOUBLE,
deptno INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
3. 导入数据
LOAD DATA LOCAL INPATH '/course/Hive/data/emp.csv' INTO TABLE emp;

4. 排序
SELECT * FROM emp ORDER BY mpno ASC, sal DESC;

5. 筛选薪资大于 3000 的员工
SELECT * FROM emp WHERE sal > 3000;

6. 查询 10 号部门中薪资大于 1500 的员工姓名
SELECT ename FROM emp WHERE deptno = 10 AND sal > 1500;

7. 统计每个部门的员工数
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno;

总结
通过以上步骤,我们成功地使用 Hive 处理了员工信息数据,完成了创建表、数据导入、排序、筛选、统计等操作。这些操作体现了 Hive 在数据处理方面的强大功能,可以帮助用户快速、高效地分析数据并得出结论。
原文地址: https://www.cveoy.top/t/topic/fwZ4 著作权归作者所有。请勿转载和采集!