Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

tellusboutyourself

하이브(Hive) 쿼리테스트 본문

Hadoop

하이브(Hive) 쿼리테스트

금서_ 2024. 3. 10. 14:50

 

https://dmschoi.tistory.com/6

위 게시물을 기반으로 쿼리테스트 진행.

 

 

쿼리테스트 1

[ 꼰대일 확률 높은 10명 찾기 ]

SELECT	*
FROM	hadoop_edu.employee ORDER BY birthday ASC
LIMIT 10;

 

생년월일 기준으로 오름차순 배열하여 10까지만 추출한다. 

결과

 

 

쿼리테스트 2

[ 1990년 1월 입사자 10명 찾기 ]

SELECT  *
FROM hadoop_edu.employee
WHERE work_day >= '1990-01-01' AND work_day <= '1990-01-31'LIMIT 10;

work_day 변수에 범위를 지정해 10까지만 추출한다. 

결과

 

 

쿼리테스트 3

[ 성별 평균 연봉 구하기 ]

USE hadoop_edu;
SELECT e.gender, AVG(s.salary) AS avg_salary
FROM employee AS e JOIN salary AS s ON (e.employee_id == s.employee_id) GROUP BY e.gender;

결과

 

 

쿼리테스트 4,5

[ 연봉 top100 리스트 추출 후 테이블로 저장 ]

SET hive.exec.dynamic.partition.mode=nonstrict;

CREATE EXTERNAL TABLE IF NOT EXISTS hadoop_edu.top_100_salary_employee 
(
employee_id  INT,
first_name  STRING,
family_name  STRING,
avg_salary  DOUBLE
)
PARTITIONED BY (gender string)
STORED AS ORC
LOCATION '/user/root/hadoop_edu/top_100_salary_employee';

INSERT OVERWRITE TABLE hadoop_edu.top_100_salary_employee PARTITION (gender)

SELECT e.employee_id, e.first_name, e.family_name, avg(s.salary) as avg_salary, e.gender

 

# 연봉 top100 리스트 추출 후 테이블로 저장된 데이터 확인

SELECT gender, count(*) cnt
FROM hadoop_edu.top_100_salary_employee
GROUP BY gender;

# 아래와 같은 결과 나오면 성공

결과

# 데이터가 저장된 HDFS 경로 확인
hadoop dfs -ls /user/root/hadoop_edu/top_100_salary_employee