当前位置: 首页 > news >正文

网站建设中源码好享管家安卓下载

网站建设中源码,好享管家安卓下载,洛阳网站设计公司,专业建设物流行业网站目录 0.lateral view简介 1.行转列 需求1: 需求2: 2.列转行 解题思路: 0.lateral view简介 hive函数 lateral view 主要功能是将原本汇总在一条(行)的数据拆分成多条(行)成虚拟表,再与原表进行笛卡尔积&#xff0c…

目录

0.lateral view简介

1.行转列

 需求1:

需求2:

2.列转行

解题思路:


0.lateral view简介

  hive函数 lateral view 主要功能是将原本汇总在一条(行)的数据拆分成多条(行)成虚拟表,再与原表进行笛卡尔积,从而得到明细表。配合UDTF函数使用,一般情况下经常与explode函数搭配,explode的操作对象(列值)是 ARRAY 或者 MAP ,可以通过 split 函数将 String 类型的列值转成 ARRAY 来处理。

炸裂函数配合侧视图使用如下
格式:select 原表别名.字段名,侧视图名.字段名 from 原表 原表别名 lateral view explode(要炸开的字段) 侧视图名 as 字段名 ;

1.行转列

-- 数据准备

--建表

create table row2col2(col1 string,col2 string,col3 int)row format delimited fields terminated by '\t';

--加载数据到表中

load data inpath '/input/r2c2.txt' into table row2col2;

-- 验证数据

select * from row2col2;

 需求1:


需求1: 把原表数据变成以下格式
a b [1,2,3]
c d [4,5,6]


思路:使用collect_list()函数有序不去重


selectcol1,col2,collect_list(col3) -- 先将col3收集
from row2col2
group bycol1, col2;

需求2:


需求2: 把原表数据变成以下格式
a b '1-2-3'
c d '4-5-6'

思路:1,2,3已经知道怎么收集了,可以用concat来将这几个数字与符号-拼接起来
concat_ws():函数在连接字符串的时候,只要有一个字符串不是NULL,就不会返回NULL。concat_ws():函数需要指定分隔符。
但concat_ws只支持拼接字符串,所以需要先用cast强转成字符串

  • cast(内容 as  类型)
  • concat_ws的格式:  select concat_ws('要拼接的分隔符','字符串1','字符串2');
select col1,col2,concat_ws('-',(collect_list(cast(col3 as string))))
from row2col2
group by col1, col2
;

2.列转行

1.准备数据

--创建表
create table col2row2(col1 string,col2 string,col3 string
)row format delimited fields terminated by '\t';

2.加载数据

--加载数据
load data  inpath '/source/c2r2.txt' into table col2row2;

3.验证数据

select * from col2row2;

解题思路:

-- 单列数据先切割再炸开
-- explode只能炸一个参数,只能接收数组或映射作为参数
select explode(col3)from col2row2; --报错
--无法直接炸col3字段,因为是字符串类型,并且题中的1,2,3并不是'一个'参数select split(col3,',') from col2row2;
--用split切割后,会将切割完的数据放进数组里 [""1"",""2"",""3""][""4"",""5"",""6""]select explode(split(col3,',')) from col2row2;
--得到了数组后,可以用explode来炸了

使用lateral view生成最终的表

格式:select 原表别名.字段名,侧视图名.字段名 from 原表 原表别名 lateral view explode(要炸开的字段) 侧视图名 as 字段名 ;

select col2row2.col1 , col2row2.col2 ,c2r.col3_explode
from col2row2
lateral view
explode(split(col3,',')) c2r as col3_explode  --用lv函数造出虚拟表c2r,col3_explode是字段名
;

http://www.yayakq.cn/news/846255/

相关文章:

  • 潍坊建设局职称公布网站网站建设经验交流材料
  • 建设银行e房通网站试玩平台网站开发
  • 做网站 郑州公司福州网站制作费用
  • 棋牌网站开发搭建me域名网站
  • 软文网站推广怎么做专门卖二手衣服的网站
  • 深圳高端网站建设创新天台做网站
  • 丹阳做网站的公司郑州网站建设培训
  • 店面设计英文网络优化工程师面试题
  • 北京个人制作网站有哪些内容二手车网站模版
  • 自己做公司的网站wordpress 不能上传
  • 舟山网站建设有哪些南昌网站建设制作商
  • 网站建设维护费 会计科目个人电脑搭建游戏服务器
  • 如何做产品网站品牌建设运营的最高境界是
  • 判断网站是否被k做软件赚钱的网站
  • 做网站用哪个软件写比较好wordpress页面不显示
  • 网站定位广告个人做网站能赚钱吗
  • 河北建设厅注册中心网站合肥网站建设方案策划
  • 深圳市网站建设科技公司郑州新闻头条最新消息
  • 小白怎样建设公司网站手游网站怎么做
  • 网站建设评比文章住房和规划建设局网站
  • 如何修改网站备案信息信息型网站
  • dj网站建设网站建设预算表样本
  • 优设网站怎么下载百度搜索名字排名优化
  • 下载了源码怎么做网站网站建设国际深圳
  • 昆山市做网站的公司网站相关知识
  • 网站备案号显示红色系统网站怎么做
  • 北京做兼职网站西安旅游景点排名前十名
  • 郑州网站托管公司哪家好西安网页制作培训机构
  • 没有工信部备案的网站是骗子吗php做网站首页修改
  • 会展类网站模板免费建站网页无需登陆