Is there a way to transpose data in Hive

前端 未结 1 2045
小鲜肉
小鲜肉 2020-12-29 13:08

This is my table:

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

I want

相关标签:
1条回答
  • 2020-12-29 13:39

    Yes there is a way to do this in Hive. You just need to create a map and then explode said map.

    Query:

    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
    

    Output:

    ---------------------
    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
    
    0 讨论(0)
提交回复
热议问题