hive行列转换函数
多行转多列: case when then
多行转一列: collect_set collect_list 且可出现在group by的字段之外
多列合并成一列:concat_ws map(key,value)
列转行:lateral view explode 将hive中复杂的array或map结构拆分成多行
解释:用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。
select
movie,
category_name
from movie_info
lateral view
explode(split(category,‘,’)) movie_info_tmp as category_name;
sql 测试
package data_warehouse.hive
import data_warehouse.hive.utils.ConnectMysql
import org.apache.spark.{
SparkConf, SparkContext}
import org.apache.spark.sql.{
DataFrame, SparkSession}
import sparksql.yunying.blackandwhite.WhiteList.saveWhite
/**
* 多行转多列: case when then
* 多行转一列: collect_set collect_list 且可出现在group by的字段之外
* 多列合并成一列:concat_ws map(key,value)
* 列转行:lateral view explode
* @ au