战狼2

Hive_列转行(集合/数组转多行)

依然范特西╮ 提交于 2019-12-03 15:44:43
1.函数说明 EXPLODE(col):   explode(col)接受一个数组(或一个map)作为输入,并将数组元素(map)作为单独的行输出。 UDTF可以在SELECT表达式列表中使用,也可以作为LATERAL VIEW的一部分使用。 LATERAL VIEW: 用在FROM语句后:LATERAL VIEW udtf(expression) tableAlias AS columnAlias 解释:用于和 split , explode 等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。 2.数据准备 movie category 《疑犯追踪》 悬疑,动作,科幻,剧情 《Lie to me》 悬疑,警匪,动作,心理,剧情 《战狼2》 战争,动作,灾难 需求 将电影分类中的数组数据展开。结果如下: 《疑犯追踪》 悬疑 《疑犯追踪》 动作 《疑犯追踪》 科幻 《疑犯追踪》 剧情 《Lie to me》 悬疑 《Lie to me》 警匪 《Lie to me》 动作 《Lie to me》 心理 《Lie to me》 剧情 《战狼2》 战争 《战狼2》 动作 《战狼2》 灾难 4.创建本地movie.txt,导入数据 [hadoop@hadoop102 datas]$ vi movie.txt 《疑犯追踪》 悬疑,动作,科幻,剧情