복붙노트

[HADOOP] 하이브에 데이터를 조 변경하는 방법이 있습니까?

HADOOP

하이브에 데이터를 조 변경하는 방법이 있습니까?

이것은 내 테이블이다.

pid     high    medium    low
1       10      8         6
2       20      16        12
3       10      6         4

이 형식의 데이터를 하이브의 다른 테이블에 다음 형식으로 저장하려고합니다.

pid      priority      value
1         high          10 
1         medium        8
1         low           6
2         high          20
2         medium        16
2         low           12
3         high          10
3         medium        6
3         low           4

해결법

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

    1.네, 하이브에서 이것을 할 수있는 방법이 있습니다. 지도를 만든 다음 상기지도를 분해하면됩니다.

    네, 하이브에서 이것을 할 수있는 방법이 있습니다. 지도를 만든 다음 상기지도를 분해하면됩니다.

    질문:

    CREATE TABLE db.new AS
    SELECT pid, priority, value
    FROM (
      SELECT pid
        , MAP('high', high, 'medium', medium, 'low', low) AS tmp
      FROM db.old ) x
    LATERAL VIEW EXPLODE(tmp) explode_table AS priority, value
    

    산출:

    ---------------------
    pid  priority  value
    ---------------------
    1    low       6
    1    medium    8
    1    high      10
    2    low       12
    2    medium    16
    2    high      20
    3    low       4
    3    medium    6
    3    high      10
    
  2. from https://stackoverflow.com/questions/37436710/is-there-a-way-to-transpose-data-in-hive by cc-by-sa and MIT license