빅데이터

[빅데이터] 문제 풀이 Hive 를 이용한 데이터 탐색

allempty_sheep 2024. 6. 14. 10:44
반응형
🎁 본 글은 실무로 '배우는 빅데이터기술' 책을 따라해보고 실행하여보는 과정을 기록한 글이다.

🎁 빅데이터 처리의 전체적인 흐름과 과정을 학습하기 쉬우며 빅데이터에 관심있는 사람들에게 추천한다.

 

차량 2대에 대해 배터리 잔량이 20에서 50사이인 데이터가
다음과 같이 조회되도록 sql를 작성 (단,차량번호 내림차순)

차량번호 건수
XXXX    XXX


답 : 

SELECT car_number,
       COUNT(battery) as count
  FROM SmartCar_Status_Info
 WHERE car_number in('C0001','Q0002') 
 AND battery BETWEEN 20 AND 50
 group by car_number
 order by car_number;

 

 

 

외부에 테이블을 생성하고 데이터를 가져와 보자.

 

CREATE EXTERNAL TABLE SmartCar_Drive_Info(
  r_key string, 
  r_date string, 
  car_number string, 
  speed_pedal string, 
  break_pedal string, 
  steer_angle string, 
  direct_light string, 
  speed string, 
  area_number string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES (
 "hbase.columns.mapping" = "cf1:date,cf1:car_number,
                            cf1:speed_pedal,
                            cf1:break_pedal,
                            cf1:steer_angle,
                            cf1:direct_light,
                            cf1:speed,
                            cf1:area_number")
TBLPROPERTIES(
  "hbase.table.name" = "DriverCarInfo");

 

select *
  from SmartCar_Drive_Info
limit 10;

 

 

/pilot-pjt/collect에
car-master 디렉토리 생성

 

파일 하나를 업로드 해줄 것이다.

 

/pilot-pjt
buy-list 디렉토리를 하나 더 생성한다.

그 후 해당 폴더에도 데이터 파일을 넣어 줄 것이다.

 

 

데이터를 넣었다면 쿼리를 실행해보자

CREATE EXTERNAL TABLE SmartCar_Master (
car_number string,
sex string,
age string,
marriage string,
region string,
job string,
car_capacity string,
car_year string,
car_model string
)
row format delimited
fields terminated by '|'
stored as textfile
location '/pilot-pjt/collect/car-master';

 

데이터를 조회해 보자

select * from smartcar_master

 

 

차량 구매 이력 테이블도 만들어 볼 것이다.

CREATE EXTERNAL TABLE SmartCar_Item_BuyList (
car_number string,
Item string,
score string,
month string
)
row format delimited
fields terminated by ','
stored as textfile
location '/pilot-pjt/collect/buy-list';
select * from smartcar_item_buylist