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

电商模板网站免费电商网站有哪些功能模块

电商模板网站免费,电商网站有哪些功能模块,英文建站网站,杭州龙席网络seo场景: hive有张表armmttxn_tmp,其中有一个字段lot_number,该字段以逗号分隔开多个值,每个值又以冒号来分割料号和数量,如:A3220089:-40,A3220090:-40,A3220091:-40,A3220083:-40,A3220087:-40,A3220086:-4…

场景:

hive有张表armmttxn_tmp,其中有一个字段lot_number,该字段以逗号分隔开多个值,每个值又以冒号来分割料号和数量,如:A3220089:-40,A3220090:-40,A3220091:-40,A3220083:-40,A3220087:-40,A3220086:-40,A3220088:-40,A3220084:-40,A3220081:-40,A3220082:-40,A3220092:-40,A3220093:-40,A3220085:-40,A3220094:-40。

要求:

把该字段拆分开来,并且把料号和数量单独列出,也就是分成两列。

原数据:

select 
key_id,
lot_number 
from armmttxn_tmp
where key_id = '48641906';

用到的函数:split()、explode()

 步骤:

step1:以逗号拆分开,如下:

["A3220089:-40","A3220090:-40","A3220091:-40","A3220083:-40","A3220087:-40","A3220086:-40","A3220088:-40","A3220084:-40","A3220081:-40","A3220082:-40","A3220092:-40","A3220093:-40","A3220085:-40","A3220094:-40"]

使用split函数,把数据拆分开

select 
key_id ,
split(lot_number, ',') lot_number
from armmttxn_tmp
where key_id = '48641906';

 step2:一行变成多行

select 
explode(split(lot_number, ',')) lot_number
from armmttxn_tmp
where key_id = '48641906';

 这里如果加上key_id字段,会怎样呢?

SQL 错误 [10081] [42000]: Error while compiling statement: FAILED: SemanticException [Error 10081]: UDTF's are not supported outside the SELECT clause, nor nested in expressions

原因:当使用UDTF函数的时候,hive只允许对拆分字段进行访问。
所以,可以这样使用:select explode(split(lot_number, ',')) lot_number from armmttxn_tmp where key_id = '48641906'; 

但不可以这样使用:select key_id ,explode(split(lot_number, ',')) lot_number from armmttxn_tmp where key_id = '48641906';

如果想访问除了拆分字段以外 的字段,怎么办呢?
用lateral view侧视图!

lateral view为侧视图,是为了配合UDTF来使用,把某一行数据拆分成多行数据.不加lateral view的UDTF只能提取单个字段拆分,并不能塞会原来数据表中.加上lateral view就可以将拆分的单个字段数据与原始表数据关联上.

注意:在使用lateral view的时候需要指定视图别名

--表名 lateral view UDTF(xxx) 视图别名(虚拟表名) as a,b,c(列别名)

--lateral view explode 相当于一个拆分lot_number字段的虚表,然后与原表进行关联.

step3:拆分的字段与原始表数据关联上.

select 
key_id ,
split(view.*,':') lot_number
from armmttxn_tmp lateral view explode(split(lot_number, ',')) view
where key_id = '48641906';

但还不是我们想要的最终结果,还需要把lot_number拆分成两列

step4: 拆分成两列

select 
key_id ,
split(view.*,':')[size(split(view.*, ':'))-2] as lot_number,
split(view.*,':')[size(split(view.*, ':'))-1] as quantity
from armmttxn_tmp lateral view explode(split(lot_number, ',')) view
where key_id = '48641906';

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

相关文章:

  • 望京网站建设公司商城型网站建设代理加盟
  • 随州网站建设推荐seo优化公司
  • wordpress网站空白网络安全建设方案
  • 男女做暧暧试看网站49秦皇岛做网站多少钱
  • 网站建设方案书的内容整站排名优化品牌
  • 视频医疗平台网站开发wordpress左右
  • 建一个公司网站要多久去掉wordpress标题中竖线
  • 做淘客网站要备案北京工程建设信息交易网
  • 建设个直播网站要多少钱免费行情软件网站下载ww
  • 深圳建站哪家专业网络服务提供者接到通知后
  • 大浪网站建设 优帮云福田公司总部
  • 网站功能模块设计怎么写临沂手机端建站模板
  • 上海网站设计方法什么是优化资源配置
  • 上虞区住房和城乡建设部网站电商网站建设与管理自考试卷
  • 服装网站开发方案swot我自己做个网站怎么做
  • 网站建设先进城市长沙移动网站建设
  • 注册网站备案重庆森林粤语完整版在线观看免费
  • 网站建设备案费用专做五金正品的网站
  • 做网站路由器映射外网杭州高端网页设计
  • 学校网站建设责任书2h1g做视频网站
  • 化工产品网站建设怎么修改网站源文件
  • 如何搞好网站建设免费咨询医生男科
  • 大连建站免费模板建筑网片图片大全
  • 专门做食品的网站深圳跑网约车怎么样
  • 百度搜索公司网站展现图片桐庐营销型网站建设
  • 佛山做网站的公司有哪些vs 网站开发教程
  • 魔方 网站软件推广赚钱一个10元
  • 优秀电商设计网站有哪些内容wordpress嵌入flash
  • 公司建设网站记什么费用郑州 网站开发
  • 广州建设品牌网站线上线下整合营销方案