美剧

hive列转行案例

爷,独闯天下 提交于 2020-02-17 06:12:13
hive列转行 1.函数说明 EXPLODE(col) :将 hive 一列中复杂的 array 或者 map 结构拆分成多行。 LATERAL VIEW : 用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias 解释:用于和 split, explode 等 UDTF 一起使用,它能够将一列数据拆成多行数据,在此 基础上可以对拆分后的数据进行聚合。 2.数据准备 move_name category 《疑犯追踪》 悬疑,动作,科幻,剧情 《Lie to me》 悬疑,警匪,动作,心理,剧情 《战狼 2》 战争,动作,灾难 3.需求 将电影分类中的数组数据展开。结果如下: move_name category_name 《疑犯追踪》 悬疑 《疑犯追踪》 动作 《疑犯追踪》 科幻 《疑犯追踪》 剧情 《Lie to me》 悬疑 《Lie to me》 警匪 《Lie to me》 动作 《Lie to me》 心理 《Lie to me》 剧情 《战狼 2》 战争 《战狼 2》 动作 《战狼 2》 灾难 5.创建 hive 表并导入数据 create table movie_info ( movie string , category array < string > ) row format delimited

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 《疑犯追踪》 悬疑,动作,科幻,剧情