-- 对一张大表的每一行,后面加多种label值 -- 其实就是笛卡尔积,举例 -- SELECT * FROM dev.dev_jiadian_user_yuge_temp -- CROSS JOIN -- ( -- SELECT 0 AS label -- UNION ALL -- SELECT 1 AS label -- UNION ALL -- SELECT 2 AS label -- )t; -- 方法二 -- 使用数组,然后进行转置操作 -- 注意k是flag别名,必不可少 SELECT * FROM ( SELECT *, Array(0,1,2) AS flag FROM dev.dev_jiadian_user_yuge_temp )t lateral view explode(flag)k AS label ; --
参考:https://blog.csdn.net/wangguohe/article/details/79386917
https://blog.csdn.net/dreamingfish2011/article/details/51250641