分享好友 最新动态首页 最新动态分类 切换频道
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




最新文章
《小浣熊漫画cms》thinkphp框架开发的一款开源免费的漫画站源码
小浣熊漫画是一款由国人开发漫画站源码,开发者一开始还开发了小浣熊小说,两款产品使用起来都还不错,就是搭建起来会有一小些问题,可能是某些地方容易被疏忽了,之前本人也是有搭建过的。小浣熊漫画还提供了火车头api接口和火车头发布模
高德地图,轻松定位自家店铺的神奇秘籍大公开
在当今数字化的时代,拥有一个精准的店铺定位对于商家来说至关重要,高德地图作为一款广受欢迎的导航应用,为商家提供了便捷的店铺定位服务,就让我们一起揭开高德地图定位自家店铺的神秘面纱。上传清晰、有吸引力的店铺照片也是必不可少的
今天!欧洲理事会决定罗马尼亚和保加利亚全面加入申根;AUR主席要弹劾总统!比亚迪宣布2025年开始在匈牙利生产紧凑型电动汽车;-
今日罗马尼亚旅罗华人报讯 今天(12日),欧洲司法和内政委员会(JAI)正式批准罗马尼亚和保加利亚加入申根区。根据决定,两国将于2025年1月1日起,成为无边界管制空间成员。对于罗保两国来说这是一个历史性时刻。 根据决定,2025年1月1日
莫名其妙收到长银消费金融短信
小编导语在这个信息高度发达的时代,手机短信已经成为我们日常生活中的重要沟通工具。许多人都曾经历过一些莫名其妙的短信,尤其是来自于一些金融机构或陌生号码的营销信息。最近,我收到了来自长银消费金融的一条短信,这让我产生了浓厚的
如何确保新站三日内被百度迅速收录?关键在于优质内容与独特吸引力
身为网络管理员,新建站点后最期望的莫过于能迅速被各大搜索引擎如百度所收录。然近期因百度审核标准日趋严苛,许多新站需等待数周乃至月余方有收录可能,给推广及业务发展增添了诸多困难。在此背景下,如何确保新站在三日内被百度迅速收录
镇江刀片产品表面视觉检测方案设计实时反馈全+境+到+达
  镇江刀片产品表面视觉检测方案设计实时反馈全+境+到+达——苏州希佑科技有限公司!  提供:  计算机视觉|人工智能检测|人工智能视觉检测|CCD 视觉检测|视觉应用|视觉深度学习|AI人工智能检测|AI人工智能图像处理|AI图像处理|视觉检
SEO常见术语分析,助你掌握搜索引擎优化之路
随着互联网的快速发展,搜索引擎优化(SEO)已成为企业提升品牌知名度、拓展市场份额的重要手段。为了帮助大家更好地理解SEO,本文将解析一些常见的SEO术语,助你掌握搜索引擎优化之道。一、(Keywords)关键词是SEO的核心,指的是用户在搜
魔兽世界隔墙有耳任务攻略与完成技巧解析
在《魔兽世界》中,隔墙有耳是一项颇具挑战性的任务,它要求玩家在特定的地点 stealth 潜行,并收集情报以了解敌人的阴谋。这项任务不仅考验玩家的潜行技巧,还考验其策略思考能力和对环境的观察力。接下来,我们将分享一些完成该任务的实
谷歌推广新手教程【谷歌推广app】
本文目录导读:谷歌推广的基本概念谷歌推广的账号设置谷歌推广的广告类型谷歌推广的关键词研究谷歌推广的广告创意谷歌推广的投放设置谷歌推广的效果评估与优化在当今数字化的时代,谷歌推【浙江seo】广已成为企业和个人进行网络营销的重要
快递物流1月7日,一月七日快递停运吗
1、极兔快递物流不动是什么原因2、跨越速运2023年春节不打烊政策3、2021河北石家庄快递什么时候恢复4、...是PA开头的单号,只显示1月7日在福州,到今天都没有更新了!!!_百度知...1、物流公司没有更新网页信息:由于物流公司每日揽件量和运输
相关文章
推荐文章
发表评论
0评