hive行列转换函数

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值