当前位置: 代码迷 >> 综合 >> 列转行
  详细解决方案

列转行

热度:56   发布时间:2024-03-06 16:53:31.0

列转行

《疑犯追踪》    悬疑,动作,科幻,剧情
《Lie to me》    悬疑,警匪,动作,心理,剧情
《战狼2》    战争,动作,灾难

《疑犯追踪》      悬疑
《疑犯追踪》      动作
《疑犯追踪》      科幻
《疑犯追踪》      剧情
《Lie to me》   悬疑
《Lie to me》   警匪
《Lie to me》   动作
《Lie to me》   心理
《Lie to me》   剧情
《战狼2》        战争
《战狼2》        动作
《战狼2》        灾难

create table  tb_movie2(
name string  ,
category array<string>
)
row  format delimited fields  terminated by '\t' 
collection items terminated by ',' 
;

load  data local inpath "/doit16/movie.txt" into table tb_movie2 ;

0: jdbc:hive2://linux01:10000> select explode(category) from tb_movie2;
OK
+------+
| col |
+------+
| 悬疑   |
| 动作   |
| 科幻   |
| 剧情   |
| 悬疑   |
| 警匪   |
| 动作   |
| 心理   |
| 剧情   |
| 战争   |
| 动作   |
| 灾难   |
+------+

select
name ,
tp
from
tb_movie2
lateral view 
explode(category) t  as  tp ;

+---------------------+-----+
|     name            | tp    |
+---------------------+-------+
| 《疑犯追踪》        | 悬疑  |
| 《疑犯追踪》        | 动作  |
| 《疑犯追踪》        | 科幻  |
| 《疑犯追踪》        | 剧情  |
| 《Lie to me》       | 悬疑  |
| 《Lie to me》       | 警匪  |
| 《Lie to me》        | 动作  |
| 《Lie to me》       | 心理  |
| 《Lie to me》       | 剧情  |
| 《战狼2》           | 战争  |
| 《战狼2》           | 动作  |
| 《战狼2》           | 灾难  |
+---------------------+-------+

  相关解决方案