複数の行を使用して、ハイブCONCAT_WS関数は、1つの行に結合され

  1. テストテーブルを作成します。

     CREATE TABLE IF NOT EXISTS TEST.USERS (
         id string,
         k1 string,
         k2 string,
         k3 string
     ) COMMENT '用户表' 
     ROW FORMAT delimited fields terminated BY '\t' 
     STORED AS TEXTFILE;
    
  2. テストデータを挿入

     INSERT OVERWRITE TABLE test.users VALUES
     ('1','a1','a2','a3'),
     ('1','a11','a22','a33'),
     ('1','a111','a222','a333'),
     ('2','b1','b2','b3'),
     ('2','b11','b22','b33');
    

    ビュー

  3. 行へのデータの複数行

     SELECT id,concat('[',concat_ws( ',',
                             collect_set(
                                         concat(
                                                '{',
                                                '"k1":"',k1,
                                                '","k2":"',k2,
                                                '","k3":"',k3,
                                                '"}'
                                                )
                                         )
                             ),
                   ']'
                   )
     FROM test.users
     GROUP BY id;
    
```sql
SELECT id,
       concat(
              '[{',
              concat_ws(
                         '},{',
                         collect_set(
                                     concat(
                                            '"k1":"',k1,
                                             '","k2":"',k2,
                                             '","k3":"',k3,
                                             '"' 
                                            )
                                      )
                        ),
                '}]'
               )
FROM test.users
GROUP BY id

おすすめ

転載: blog.csdn.net/oZuoLuo123/article/details/90229346