分享好友 最新动态首页 最新动态分类 切换频道
8、去掉json多余的字段 json2map + map_remove + map_values
2024-12-27 02:41

细节:sql 中有涉及到正则匹配函数的,要注意转义符号

因为在不同语言下正则匹配规则是否需要加转义符号是不同的,举例,regexp_replace 函数,在hive sql的正则匹配规则的 d+ 需要前面给它加上转义符号,而在java中可能不用,在Presto sql 就是不用加转义符号的。

8、去掉json多余的字段 json2map + map_remove + map_values

☺ 思路:不用特意去记哪一种语言需要加转义符号,哪种语言不需要,只需要记住正则匹配规则报错的一个原因,可能是转义符号的问题即可

 

(1) 语法:get_json_object(string json_string, string path)

  • json_string:必填。STRING类型。标准的JSON格式对象,格式为。如果遇到英文双引号",需要用两个反斜杠)进行转义。如果遇到英文单引号',需要用一个反斜杠)进行转义。
  • path:必填。STRING类型。以$开头。
  • :表示根节点。
  • :表示子节点。MaxCompute支持用这两种字符解析JSON对象,当JSON的Key本身包含时,可以用来替代。
  • :表示数组下标,从0开始。
  • :返回整个数组。不支持转义。

(2) 例子

 

(1) 符合正则表达式方式,截取字符串 regexp_extract

  • 语法:regexp_extract(string subject, string pattern, int index)
  • 抽取字符串subject 中符合正则表达式pattern 的第index 个部分的子字符串
index是返回结果取表达式的哪一部分
  • 0 表示把整个正则表达式对应的结果全部返回
  • 1 表示返回正则表达式中第一个()对应的结果,以此类推。
 

(2) 按字符位置截取字符串 substr

  • 语法:substr(string|binary A, int start) substr(string|binary A, int start, int len)
 

(1) 语法

regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)

(2) 作用

按照正则表达式pattern 将字符串INTIAL_STRING 中符合条件的部分替换成REPLACEMENT 指定的字符串

(3) 例子

 

(1) concat 拼接字符串

  • 语法:concat_ws(字符串1,字符串2)
 

(2) concat_ws 带分割符的拼接字符串

  • 语法:concat_ws(‘分隔符’,字符串1,字符串2)
 

(1) 规定时间输出格式 date_format

 

细节:date_format 无法识别/的时间格式,例如:select date_format(‘2023/01/17’, ‘y’); 结果是null

解决:先通过字符串替换函数,将/ 替换成 -,然后再使用date_format 函数,获取指定格式的时间

 

(2) 和时间戳相关

unix_timestamp(string date) 获取当前时间戳

  • unix_timestamp(string timestame) 输入的时间戳格式必须为’yyyy-MM-dd HH:mm:ss’,如不符合则返回null

unix_timestamp(string date, string pattern) 指定格式将时间字符串转化成时间戳

  • select unix timestamp(‘2023-1-6’‘yyyy-MM-dd’);

from_unixtime(bigint unixtime[, string format]) 将时间戳转成国际协调时间


  • 语法:ROW_NUMBER() OVER(PARTITION BY 分区的字段 ORDER BY 升序/降序字段 [DESC])
 

(1) 作用

炸裂函数,实现将一行转换成多列,然后侧视图函数进行聚合

(2) 例子

  • 原数据结果
  • 试试炸裂函数explode 效果
 
▷ explode(genre) 和其他字段一起查询
  • 实际业务,字段game_name,genre 都要查询
 
报错:UDTF’s are not supported outside the SELECT clause, nor nested in expressions
分析:原因是因为这个字段genre,炸裂之后,转换成多列(3列),而game_name 字段依然是1列,列数不匹配
解决:侧视图(表)的聚合
 
聚合效果

  • 先将json转换成map,然后使用方法map_remove删除,最后使用map_values取出来
 

  • nvl(valueExp1, valueExp2):根据第一个表达式的值是否为空,不为空则返回第一个表达式的值,若为空则返回第二个表达式的值
 

(1) 作用

with as短语,也叫做子查询部分,是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。其中,SQL片段产生的结果集保存在内存中,
后续的sql均可以访问这个结果集,作用与视图或临时表类似。

(2) 语法

 

(3) 本质:

with…as 子查询部分,和直接用子查询效率上没有什么区别,只是这种写法增加了sql可读性。

(4) 小细节

  • with…as 特点:是一次性的,例如下面的例子,定义的"临时表"temp1,在第一次查询name 之后,就不可以再查看id了。

(1) 语法

cast(expr as <type>) 将表达式 expr 的结果转换为 <type>

Cast(字段名 as 转换的类型)

(2) 例子

  • 举例1:cast(‘1’ as BIGINT) 将字符串 ‘1’ 转换为其整数表示形式

  • 举例2:表tableA 有一个时间字段 release_time:2018-11-03 15:31:26

 
  • 结果:release_time:2018-11-03




最新文章
最新抄歌流,音乐风尚与SEO优化策略,最新抄歌流,音乐风尚与SEO优化策略融合之道
摘要:最新抄歌流引领音乐风尚,结合SEO优化策略,提升音乐在线平台的曝光与流行度。通过关键词优化、热门话题跟踪及用户行为分析,提高歌曲搜索排名。借助社交媒体推广,增加用户互动与参与度,让音乐在竞争激烈的市场中脱颖而出。此举不
高清美女写真生成器:用AI画出你的梦想女神!
Midjourney:这个工具以其友好的用户界面和社区社交功能而出名,用户可以轻松分享并获取灵感。它生成的图片相对具有艺术感,适合那些追求独特风格的用户。其弱点在于允许的分辨率较低,不适合打印。Stable Diffusion:开放源代码,实现了超
靠谱!沈阳艺术生文化课冲刺班十大排名一览
辅导方式授课形式班型设置独特优势面授辅导全日制封闭式1对1老师1对1面对面辅导,私人定制个性化辅导方案及开课时间;*封闭半军事化管理,住宿安全舒适、作息健康规律、饮食营养丰富;专职班主任24小时和学生同吃同住,全心全意陪伴学生,
玉壶存冰心 朱笔写师魂——密山市二人班乡小学 李静
李静,中共党员,一级教师,大学本科学历。从教24年来一直扎根乡村教育,将“让生命因教育而精彩”作为教育理念,不断探索新时代教育教学方法,积极践行立德树人根本任务,坚持五育并举,促进学生全面优质而个性地发展。先后荣获“鸡西市教
【韬安前沿观察】国家市监总局调查英伟达 欧盟网络弹性法案生效
一、元宇宙与人工智能1. 巴西参议院批准人工智能使用规则2024年12月10日,巴西参议院一致通过了人工智能监管框架法案,该法案即将递交众议院进行表决。此法案确立了人工智能开发与使用的基本准则,强调技术应具备透明性、安全性、可靠性、
第二届全国大学生职业规划大赛北京中医药大学校赛决赛顺利举办
全国大学生职业规划大赛北京中医药大学决赛顺利举办01赛前致辞01校党委副书记致辞学工部汇报组织工作管理学院党委书记致辞宣读比赛规则比赛正式开始一等奖王梓旭 彭程二等奖王玉玺 邸云凤 常琳晗 涂文慧三等奖丁盛 冯雪儿 李玮 王紫琼优秀
如何通过妖精漫画免费登录页面快速进入漫画世界并免费观看漫画?
随着互联网的发展,越来越多的漫画平台走入了我们的视野,给喜欢漫画的用户带来了更为便捷的阅读体验。妖精漫画作为其中的佼佼者,提供了丰富多样的漫画资源,而且平台推出的免费登录页面,使得用户能够快速进入漫画世界,享受免费看漫画的
餐饮小程序怎么制作,小程序的制作方法
餐饮会员管理系统怎么做,确定好点餐小程序得有的功能,像是菜单查看、下单、支付之类的。01、会员小程序制作流程02、微信会员小程序开发多少钱一、微信会员小程序制作流程步骤:第一步:注册小程序制作平台账号百度搜索【码云数智】,在【
芜湖seo推广价格如何
芜湖的SEO推广价格会受到多个因素的影响,包括服务提供商的经验和声誉、具体的SEO策略、关键词竞争程度、行业特点、以及客户的具体需求等。一般来说,SEO服务可能会有以下一些常见的收费模式:1. 项目收费:这是一种一次性的费用,通常用于
网站终于被收录了!
作者:陌溪陌溪的学习笔记:http://note.moguit.cn大家好,我是之前一直有小伙伴跑来问我,为啥蘑菇博客上线了这么久,百度出来只有首页?百度收录在聊这个问题之前,我们先谈谈什么是 SEO。搜索引擎优化(Search engine optimization,简
相关文章
推荐文章
发表评论
0评