복붙노트

[HADOOP] 하이브 테이블에 키 값 쌍을로드하는 방법은 무엇입니까?

HADOOP

하이브 테이블에 키 값 쌍을로드하는 방법은 무엇입니까?

아래는 내 데이터 세트입니다.

Jun name="balaji" id=101

Mar name="kumar" id=102

생성 된 테이블 :

create table sample(month string,name string, id int)
row format delimited fields terminated by 'space' map keys terminated by '=';

결과:

select * from sample;      
JUN name="balaji" NULL
Mar name="kumar" NULL

예상 결과:

JUN balaji 101

Mar kumar 102

이것 좀 도와주세요.

해결법

  1. ==============================

    1.다음과 같은 표를 만듭니다.

    다음과 같은 표를 만듭니다.

    create table sample(mnth string,names map<string,string>,ids map<string,int>)
    row format delimited fields terminated by ' ' map keys terminated by '=';
    

    선택 쿼리는 다음과 같아야합니다.

      select mnth,names["name"],ids["id"]  from sample;
    
        result: 
          Jun   "balaji"    101
          Mar   "kumar" 102
    

    샘플에서 select *를 실행하는 경우 :

       Jun  {"name":"\"balaji\""}   {"id":101}
       Mar  {"name":"\"kumar\""}    {"id":102}
    

    지도의 각 값에 액세스하려면 이름 [ "이름"]을 전달해야합니다.

  2. from https://stackoverflow.com/questions/29159173/how-to-load-key-value-pairs-into-hive-table by cc-by-sa and MIT license