0
点赞
收藏
分享

微信扫一扫

hive中的split(), explode() 和lateral view()函数的使用


假设有一个表 movie, 其中的数据为

hive中的split(), explode() 和lateral view()函数的使用_hive

split()函数

 那么使用split()的的方法可以将category字段的整体字符串变为数组array类型, 如下:

> select movie, split(category, ",") from movie;

hive中的split(), explode() 和lateral view()函数的使用_hive_02

 explode()函数

使用explode()函数可以将一行的数组变成多行的, 如下:

> select explode(split(category, ",")) from movie;

hive中的split(), explode() 和lateral view()函数的使用_big data_03

 那如果想在和电影名称连上, 是不是可以一起输出下面这样的结果呢,

hive中的split(), explode() 和lateral view()函数的使用_hive_04

下面试试:

> select movie, explode(split(category, ",")) from movie;

结果报错了, 不可以这样使用

hive中的split(), explode() 和lateral view()函数的使用_hive_05

 一个select后面只能获得一个explode产生的视图,如果要显示多个列,则需要将多个视图合并。
lateral view就是做这样的事的

lateral  view()函数

select movie, tmp_col from movie 
lateral view explode(split(category, ",")) tmp_view as tmp_col;

hive中的split(), explode() 和lateral view()函数的使用_数据_06

 

举报

相关推荐

0 条评论