hive replace函数(hive sql 中换行字符的替换)

本文目录
hive sql 中换行字符的替换
···
CREATE TABLE IF NOT EXISTS test_wl7 as SELECT hive_query_id,
jobid,
TYPE,
task_count,
start_time,
finish_time,
max_task,
pre_task,
yarnuser,
regexp_replace(hive_query_string,
’\n|\r’,
’ ’) hive_query_string,
update_user,
etl_tx_dt
FROM dev_test_dc.mapred_job_history_skew
WHERE etl_tx_dt=20190730 ;
···
采集的用户sql,分析后通过sqoop将hive(表的格式是textfile)导入到mysql中。因为sql中存在换行符。需要替换。注意是\n|\r.有个\r..
Hive正则表达式
参考 维基百科 、 Hadoop Hive概念学习系列之hive的正则表达式初步(六) 和 Hive 正则匹配函数
之前没有在意过正则表达式,但是工作组不可避免的遇到了,感觉也比较重要,就花点时间理解一下。
正则表达式的目的:对字符串str进行解析,用正则表达式(pattern)进行匹配,并 得到我们想要的符合模板pattern的字符串 。
一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列匹配某个句法规则的字符串。例如:Handel、Händel和Haendel这三个字符串,都可以由H(a|ä|ae)ndel这个模式来描述。
同一个正则表达式可以匹配多个字符串。
例如,goo+gle可以匹配google、gooogle、goooogle等
0*42可以匹配42、042、0042、00042等。
反过来说,对于google、gooogle、goooogle我们都可以用正则表达式“goo+gle”匹配得到。而google、gooogle、goooogle就算我们想要的符合模板pattern的字符串。
举两个经常用到的:regexp_extract 与 regexp_replace
regexp_extract(str, regexp) 字符串正则表达式解析函数。
extracts a group that matches regexp
参数解释:
其中还有几个符号与idx需要注意的地方。
小括号( )标记一个子表达式的开始与结束的位置 。
**1表示返回正则表达式中第一个() 对应的结果 **。
2表示返回正则表达式中第二个() 对应的结果
0表示把整个正则表达式对应的结果全部返回
举例:
返回第一个()对应的结果。
此时,第一个()中对应结果是love,所以返回“love”。
因为idx是0,所以返回整个正则表达式匹配的结果。
语法: regexp_replace(string A, string B, string C)
返回值: string
说明: 将字符串A中的符合Java正则表达式B的部分替换为C 。
注意,在有些情况下要使用转义字符,类似 Oracle 中的regexp_replace函数。
举例说明:
hive sql bigint类型为空能用不等于空字符串吗
hive sql bigint类型为空能用不等于空字符串。
int为数字类型,这种字段会有个默认值,就是0,有很多人会用int字段来做对比,那么这个字段的值就会有0和1,而在你的语句中,0就是空,但不是null,所以就会这样了。
用replace函数替换 Replace() 功能将一个字符串中指定个数的字符串替换为另一个字符串。 语法Replace(string1,start,n,string2) 参数string1:string类型,指定要使用string2替换其中一部分内容的字符串start。
表示范围:
C语言没有规定各种整数类型的表示范围,也就是说,没有规定各种整数的二进制编码长度,对于int和long,只规定了long类型的表示范围不小于int,但也允许它们的表示范围相同。具体C语言会对整型和长整型规定表示方式和表示范围。
使用技巧:标准函数INT(X)其基本功能是得到一个不大于X的最大整数,如INT(3.59)=3,INT(-2.01)=-3。INT函数是一个用途很广的函数,在教学中能有目的的分列其使用技巧。

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
display的用法(display是什么意思 详解display的含义和用法)
2026年10月10日 22:00
html全部居中代码(怎么让网页居中显示,html如何让网页居中)
2026年10月10日 21:10





