多语言展示
当前在线:1344今日阅读:155今日分享:35

hive中的转义字符

在hive处理中,经常会遇到特殊字符,而这时候就需要对特殊字符处理,如果之前没有接触过特殊字符,处理起来会很麻烦。下面我就说一说hive转义字符那点事。
工具/原料
1

hadoop,hive

2

crt或其他连接hive工具

方法/步骤
1

建立包含特殊字符的字符串,sql如下:select  concat_ws('|','123','456','789') from dual;其中concat_ws为连接函数,查询结果为:123|456|789

2

上面用特殊字符'|'讲几个字符串合并,那么接下来用split函数把拼好的字符串拆开,看看什么效果select split(concat_ws('|','123','456','789'),'|')from dual;结果: ['','1','2','3','|','4','5','6','|','7','8','9']

3

上面的结果显然不是正确的,那么用'\'转义呢,咱们再看看效果select split(concat_ws('|','123','456','789'),'\|')from dual;结果:['','1','2','3','|','4','5','6','|','7','8','9']

5

这次的结果总算对了,总结下就是要有两个'\'对特殊字符进行转义。不信的话我们来试试其他函数的效果。我们把'|'替换为两个0(即00),看看效果select regexp_replace(concat_ws('|','123','456','789'),'\\|','00')from dual;结果:89

6

上面的结果显然是正确的。总结下,如果对hive特殊字符进行转义处理,要用两个\哦,即'\\'

注意事项
1

此方法为hive中的特殊字符转义

2

如果用其他工具对hive进行封装,很可能就不是两个'\'了,很可能是三个、四个,或者更多,跟你封装的工具有关,可以试试

3

如果觉得本文对你有帮助,请点赞哦

推荐信息