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

百度站长工具网站认证网站开发时间计划

百度站长工具网站认证,网站开发时间计划,wordpress建站 图片,百度网站建设的十一个Hive与Presto列转行的区别 1、背景描述2、Hive/Spark列转行3、Presto列转行 1、背景描述 在处理数据时,我们经常会遇到一个字段存储多个值,这时需要把一行数据转换为多行数据,形成标准的结构化数据 例如,将下面的两列数据并列转换…

Hive与Presto列转行的区别

    • 1、背景描述
    • 2、Hive/Spark列转行
    • 3、Presto列转行



1、背景描述


在处理数据时,我们经常会遇到一个字段存储多个值,这时需要把一行数据转换为多行数据,形成标准的结构化数据

例如,将下面的两列数据并列转换为三行,使得codename一一对应

idcodename
1a、b、cA、B、C

Hive、Spark和Presto都提供了这种实现,但有所不同。下面通过这个案例介绍三者之间的区别及注意事项

2、Hive/Spark列转行


Hive和Spark都可以使用lateral view posexplode实现:

select id, pos1, sub_code, pos2, sub_name from tmp
lateral view posexplode(split(code,'、')) v1 as pos1, sub_code
lateral view posexplode(split(name,'、')) v2 as pos2, sub_name
where id='1' and pos1=pos2

Hive On MapReduce与Hive On Spark的执行结果如下:

idsub_codesub_name
1aA
1bB
1cC

值得注意的是,lateral view posexplode会自动过滤被转换列字段值为空的数据,进而导致数据丢失

优化方案是将lateral view修改为lateral view outer后尝试

更多关于lateral view UDTF的使用见文章:传送门

3、Presto列转行


使用PrestoSQL的交叉连接cross join unnest实现:

with t1 as(select id,sub_code,row_number() over() rnfrom tempcross join unnest(split(code, '、')) as t (sub_code)where id='1'
),
t2 as (select id,sub_name,row_number() over() rnfrom tempcross join unnest(split(name, '、')) as t (sub_name)where id='1'
)
select t1.id, t1.sub_code, t2.sub_name
from t1
left join t2 
on t1.rn = t2.rn
order by t1.rn

PrestoSQL的执行结果如下:

idsub_codesub_name
1bB
1aA
1cC

需要注意的是,cross join unnest不会自动过滤被转换列和转换列字段值为空的数据,因此此方式数据不会丢失

例如,当转换列字段值存在空值时:

idcodename
1a、b、cA、B

cross join unnest列转行的结果为

idsub_codesub_name
1aA
1cNULL
1bB

当被转换列字段值存在空值时:

idcodename
1a、b、cNULL

cross join unnest列转行的结果为

idsub_codesub_name
1bNULL
1aNULL
1cNULL


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

相关文章:

  • 肇庆网站开发哪家专业企业文化网站建设
  • wordpress交易网站自己买服务器做网站
  • 北京 网站 建设免费网站建站 网页
  • php制作wap网站开发软件技术特点
  • 东莞机械网站建设国内网站域名吗
  • wordpress里面主题文档怎么编辑seo优化需要多少钱
  • 网站上传不了图片是什么原因律师网站维护
  • 小企业网站建设设计网站内链设置
  • 简述网站建设的无锡市新区建设环保局网站
  • php网站建设案例科技网站备案
  • 建设网站方法有哪些内容建设工程国检中心网站
  • 信誉好的做网站个人网站怎么做 简历
  • 网站名称有哪些深圳网站设计x
  • 如何做网站上抓视频网站建设与网络编辑综合实训课程指导手册
  • 什么是网站开发中的分页网站源码上传完后怎么做
  • 网站制作深圳做网站导航菜单
  • 网站建设如何切图网页制作正版网站
  • 团购网站案例公司网络
  • 大连网站建设网站开发 兼职挣钱吗
  • 郑州做网站推著名网站有哪些
  • WordPress微说电子商务seo是什么
  • 学校网站样式广州网页设计招聘
  • 网站开发体系wordpress响应式
  • 商城网站的psd模板免费下载学校自己做的网站需要买服务器吗
  • 网站开发前端和后端怎样创建网站域名平台
  • 网站查询ip解析安徽振兴集团网站开发
  • 建设好网站如何上传百度云南网络营销seo
  • 高明网站设计收费网站建设公司一般多少钱
  • 织梦网站做网站销售好累
  • 企业公共服务平台网站建设方案免费一键生成详情页