Hive -e时的双引号和反斜杠问题

hive语句遇到的反斜杠问题 需求:regexp_replace(字段wfss,’\\’,’&’) 匹配wfss里数据包含反斜杠’\’,然后再给它替换成’&’, 一开始我只给了两个反斜杠,运行会报错, 搜了一圈,需要四个才行:regexp_replace(字段wfss,’\\\\’,’&’) 后来配调度脚本的时候,加了hive -e"…" 结果报了如下错误: Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execut 阅读详情

今天用hive -e 测试split(column, "\\.")的时候发现有个坑,记录一下。
建表语句:

create table movie (
name string,
category string
)
row format delimited fields terminated by "\t";

数据准备movie.txt:

《疑犯追踪》	悬疑.动作.科幻.剧情
《Lie to me》	悬疑.警匪.动作.心理.剧情
《战狼 2》	战争.动作.灾难

插入语句:

load data local inpath "/opt/bigdata/hive/hive-3.1.2/test/movie.txt" into table movie;

查询测试:
在这里插入图片描述
用hive -e 测试的时候,如果sql语句是用单引号包裹,分割符用双引号包裹,如下:

hive -e 'select split(category, "\\.") from movie;'

可以得到正确结果,如图:
在这里插入图片描述
但是如果sql语句是用双引号包裹,分割符用单引号包裹,如下:

hive -e "select split(category, '\\.') from movie;"

则得不到正确结果,应该是hive用"."(正则里"."表示任意字符)来分割了,如下:
在这里插入图片描述
这里为什么是用"."来分割了呢?因为shell里带双引号的命令也需要一次转义,所以正确的写法应该是:

hive -e "select split(category, '\\\\.') from movie;"

结果如图:
在这里插入图片描述这里需要用四个反斜杠来表示普通字符".",而不是正则里的任意字符。
当然,如果是用hive -f 来执行hql,就不需要第一层的引号了。

记录一下,避免以后再踩坑!

SQOOP从mysql导入数据到hive问题 需要将mysql一张表的数据导入到hive表当中 初始的执行命令如下: sqoop import --connect jdbc:mysql://10.1.x.x:3306/dbname?characterEncoding=utf-8 --username root --password 123456 --table test --target-dir /home/hdfs/data/t... 阅读详情

相关推荐

Hive/Spark-SQL 命令行全解:-e/-f/-d 传参、特殊字符处理、sed 替换、Shell 并行执行

本文全面解析Hive/Spark-SQL命令行客户端(CLI)的生产级使用指南。重点包括:1)核心命令-e/-f的适用场景与区别;2)反斜杠转义的关键避坑点;3)两种参数传递方式(-d变量与Shell变量);4)辅助参数-S/-v的使用场景;5)sed批量修改SQL文件技巧;6)Shell并行执行优化方法。文章提供可直接复用的生产案例,涵盖从基础执行到高级优化的完整解决方案,特别强调正则转义、参数传递等高频问题的处理方案,帮助开发者提升数仓任务执行效率与稳定性。

. 9260

hive -e的反斜杠

hive -e的坑: 实际只有一千多的数据 hive -e跑出来要九千多条。。。。。。 ================================= 因为sql里面有\\ 所以需要四个反斜杠\\\\ 这样就好了 ...

qq_37743098的博客 1531

hive split 函数转义问题

语法 split(str string, regex string) -- 使用 regex 分割字符串 str 基本用法 select split('a,b,c,d', ',') from temp_cwh_test; -- 分割 -- 结果为数组 > ["a","b","c","d"] 截取字符串中某个值 select split('a,b,c,d', ',')[0] from temp_cwh_test; -- 提取第1个值 > a 特殊字符的处理 针对特殊分割符号,需要特殊处理。

进一步有进一步的欢喜~ 1846

hive-hive -e中的引号文本转义的问题

hive -e 双引号

DCHAO的博客 1436

基于Simulink的魔术公式轮胎动力学仿真

本篇博文主要用来记录汽车系统动力学课程的学习,仅供课程阶段参考,与实际工程应用还有较大距离。基于Simulink的魔术公式轮胎动力学仿真本实例主要有以下任务。1.建立魔术公式轮胎动力学仿真模型。2.绘制不同载荷下的轮胎纵向力—滑动率关系曲线。3.绘制不同载荷下的轮胎侧向力—侧偏角关系曲线。4.绘制不同载荷下的轮胎回正力矩—侧偏角关系曲线。提示:以下是本篇文章正文内容,下面案例可供参考。

shy_201992的博客 6940

别再说Fortran过时了!手把手教你用VS Code + gfortran搭建现代开发环境(2024版)

本文打破Fortran过时的刻板印象,详细介绍如何利用VS Code和gfortran搭建现代开发环境。从编译器安装、VS Code插件配置到项目结构标准化,提供完整的2024版跨平台解决方案,并展示Fortran 2023标准的协程、并行计算等现代特性,助力科学计算与高性能开发。

weixin_42629815的博客 243

hive:sparksql:针对反斜杠的正则替换问题

hive中如何替换反斜杠: sparksql中如何替换反斜杠: select position_name,code,senior_name,parent_code,level from position_name_data pnd right join senior_function_data sfd on regexp_replace(sfd.senior_name,'\\\\'...

不花的花和尚的博客 3867

西门子机床数据采集实战:从828D到840DSL的CNC设备联网与实时监控

本文深入探讨了西门子机床数据采集的实战方案,重点解析了从828D到840DSL等CNC设备如何实现免授权、低成本联网与实时监控。文章通过对比不同型号系统的数据接口差异,提供了详细的配置步骤、核心数据点清单以及避坑指南,旨在帮助工厂技术人员经济高效地挖掘机床数据价值,提升生产管理效率。

weixin_29181861的博客 1333

hive -e 和hive -f 的注意点 (//和////)

原谅我张嘴可能就想骂人,当然跟别人无关,想骂的是自己太年轻,也顺便记录下这个注意点。 菜鸟一只,多多见谅!!   大家都知道,hive -f 后面指定的是一个文件,然后文件里面直接写sql,就可以运行hive的sql,hive -e 后面是直接用双引号拼接hivesql,然后就可以执行命令。 但是,有这么一个东西,我的sql当中有一个split切割,暂且先不管这个分割的业务逻辑是什么,但是...

lsr40的博客 3万+

从Gitee上部署视觉工程到Linux虚拟机

(使用SVM来识别装甲板的编号,此处手机上的图片中只有灯条没有数字,SVM无法识别出编号。这两行代码的意义是,当SVM识别不出或者识别不到编号时,把装甲板的编号默认为2号。找到自瞄程序中,数字识别类下的这两行代码,把注释去掉。这样,每次打开新的终端时,环境变量都会自动设置。(2)查看虚拟机设置选项,检查虚拟机USB接口是否为3.0及以上的接口。如果不是,要更改好。这样,每次打开新的终端时,环境变量都会自动设置。后,每次打开终端时自动设置这些环境变量,你可以将。打开第一个终端,用来挂ROS的内核启动页面。

2301_81035291的博客 1520

LangChain4j 开发

市场上主流的 Java 调用大模型的工具库有两种:LangChain4j 是一个 面向 Java 的开源框架,用于构建 基于大语言模型(LLMs) 的应用程序。它是 LangChain(Python 生态中非常流行的 LLM 应用框架)的 Java 实现,旨在让 Java 开发者能够轻松地集成和使用各种 LLM 服务,快速开发 智能聊天机器人、智能搜索、文档问答、Agent系统 等 AI 驱动的应用。官网文档:https://docs.langchain4j.dev/。引入依赖(JDK17 及以上): 构建

m0_62943934的博客 2795

Hive使用shell调用命令行特殊字符处理

数据处理常用hive -e的方式,通过脚本操作数仓,过程中常常遇到特殊字符的处理,如单双引号、反斜杠、换行符等处理

Brother_ning的博客 1492

OBD诊断协议:OBDⅡ (SAE J1979) 和 OBDonUDS (SAE J1979-2) 和ZEV OBD技术架构的详细对比

摘要:文章对比了2025年最新OBD技术标准(SAEJ1979系列)的三大架构:传统OBD-II(已淘汰)、OBDonUDS(燃油/混动车)和ZEVOBD(新能源车)。核心发现:1)OBDonUDS与ZEVOBD共享UDS协议栈和DoIP通信标准,仅应用层数据(DID/DTC)不同;2)物理层统一为CAN+以太网,支持远程诊断和OTA;3)诊断工具需同时兼容J1979-2/3数据库。技术演进呈现"协议统一化、数据专用化"趋势,2027年后所有新车将强制采用新标准。

m0_56482679的博客 2398

hive -e和hive -f的区别(转)

大家都知道,hive -f 后面指定的是一个文件,然后文件里面直接写sql,就可以运行hive的sql,hive -e 后面是直接用双引号拼接hivesql,然后就可以执行命令。 但是,有这么一个东西,我的sql当中有一个split切割,暂且先不管这个分割的业务逻辑是什么,但是当中有一段是用小数点(.)来分割字符串的,因为小数点是一个比较特殊的符号,所以前面要加上两个反斜杠来代表这是一个单...

weixin_30493401的博客 679

五步通关!宝塔Linux部署ASP.NET Core的魔法秘籍大公开!

摘要: 本文提供ASP.NET Core应用五步部署攻略,涵盖从环境配置到线上运行的完整流程: 1️⃣ 环境准备:安装宝塔面板、ASP.NET Core运行时及开放端口; 2️⃣ 应用发布:通过dotnet publish生成独立部署包并上传服务器; 3️⃣ Nginx配置:设置反向代理将域名请求转发至应用端口; 4️⃣ 进程守护:使用Supervisor确保应用持续运行; 5️⃣ HTTPS加密:通过宝塔快速申请SSL证书并解决验证路径冲突。 关键点: 强调权限设置(755)、端口开放及反向代理细节; 提

java专栏 970

【机器学习概率统计】11 贝叶斯统计推断:最大后验

这一节,我们来介绍另外一种统计推断方法:贝叶斯统计推断方法。 1.回顾贝叶斯定理 首先,我们先来复习一下贝叶斯定理: p(Θ∣X)=p(X∣Θ)p(Θ)p(X)p(\Theta|X)=\frac{p(X|\Theta)p(\Theta)}{p(X)}p(Θ∣X)=p(X)p(X∣Θ)p(Θ)​ 在这个简简单单的式子当中,蕴含了我们要掌握的很多重要内容: 贝叶斯定理当中的四个概率表达式,他们都非常重要,在这一节的内容中将反复出现,我们来一一解析一下: p(Θ)p(\Theta)p(Θ):先验分布。 反映的是在

机器学习数学基础系列专栏 3271

shell 引号 转义符 通配符 特殊字符

下面内容解释hive -e "" 中为什么用四个反斜杠,而hive-CMD中只用两个反斜杠   hive -e "select split('1.2.3.4','\\\\.') from default.dual;"   hive> select split('1.2.3.4','\\.') from default.dual;   上面两种情况执行结果一样   需要注意的是:

zhoulixin8的专栏 3万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

hive 中\\使用的注意事项

hive -f 后面指定的是一个文件,然后文件里面直接写sql,就可以运行hive的sql,hive -e 后面是直接用双引号拼接hivesql,然后就可以执行命令。 但是,有这么一个东西,我的sql当中有一个split切割,暂且先不管这个分割的业务逻辑是什么,但是当中有一段是用小数点(.)来分割字符串的,因为小数点是一个比较特殊的符号,所以前面要加上两个反斜杠来代表这是一个单纯的小数点(.),...

天马流欣 3191

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hive中 regexp_replace的用法,替换特殊字符问题

数据仓库中有的字段不合格,有特殊字符,比如换行符。 poi_name \n19013 \n12013 怎么把换行符替换掉呢? https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-StringOperators regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT) Retu.

时间(实践)是检验真理的唯一标准 4042

mysql导出csv中字段里有换行符的处理办法及hive导出处理办法

mysql命令行导出csv文件时,若字段里有换行符,输出的文件就会在换行符前面加一个反斜杠,这种非标准的csv导入到excel也乱行了。网上查了好多文章,都建议在相应的字段上加replace函数,把换行符替换成特殊标记,这显然是非常笨的做法,无法通用,特别是无法预测哪个字段会有换行符的。2、用sed把Csv中“+换行符”替换成“换行符”这时,再用excel打开,就不会有乱行的问题。1、导出csv时,给字符型字段值加上双引号。

weixin_45357522的博客 784

Hive学习笔记:split函数分割字符串

语法 split(str string, regex string) -- 使用 regex 分割字符串 str 返回值为一个数组。 基本用法 select split('a,b,c,d', ',') from temp_cwh_test; -- 分割 -- 结果为数组 ["a","b","c","d"] 截取字符串中某个值 select split('a,b,c,d', ',')[0] from temp_cwh_test; -- 提取第1个值 a 可以指定提取结果数组中...

u011250186的博客 5366

hive中转义特殊字符

原SQL如下:   regexp_extract(lower(url), 'bookid\\=([^&$]+)', 1)   封装hive sql用的是perl,perl中用hive -e的方式将sql传给hive执行,上面的语句中perl经过转义,变成了   regexp_extract(lower(url), 'bookid=([^&5.008008+)', 1) ...

1773

常用的hive sql

常用的hive sql

伟庭的博客 3239

【大数据】Linux—HDFS—Hive—MySQL之间的数据转换

Linux-->MySQL:将Linux本地文件上传到MySQL(bash)MySQL-->Linux:将mysql数据下载到Linux本地(bash)Linux-->MySQL:将Linux本地文件上传到mysql(SQL)MySQL-->Linux:将mysql数据下载到Linux本地(SQL)HDFS-->Linux:将HDFS文件导出到Linux本地(bash)HDFS-->MySQL:将HDFS数据下载到mysql(bash)MySQL-->HDFS:将mysql数据上传到HDFS(bash)

weixin_44179454的博客 238

linux kill进程和子进程小trick

       我们的hive web是调用polestar restful service(https://github.com/lalaguozhe/polestar-1)来执行具体的hive或者shark语句的,这几天有用户说hive web上的kill按钮失效了,虽然已经显示停止了查询,但是其实提交到jobtracker的mapred job或者spark worker节点上作业还在runn...

weixin_34357887的博客 1227
上一篇: Hive一些常用配置【持续更新】
下一篇: rdd.collect()后得到的List排序问题:Exception in thread “main“ java.lang.UnsupportedOperationException
IT-Billy
博客等级 码龄7年 9粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值