hive -e 和hive -f 的注意点 (//和////)
原谅我张嘴可能就想骂人,当然跟别人无关,想骂的是自己太年轻,也顺便记录下这个注意点。
菜鸟一只,多多见谅!!
大家都知道,hive -f 后面指定的是一个文件,然后文件里面直接写sql,就可以运行hive的sql,hive -e 后面是直接用双引号拼接hivesql,然后就可以执行命令。
但是,有这么一个东西,我的sql当中有一个split切割,暂且先不管这个分割的业务逻辑是什么,但是当中有一段是用小数点(.)来分割字符串的,因为小数点是一个比较特殊的符号,所以前面要加上两个反斜杠来代表这是一个单纯的小数点(.),那么问题就来了!!
当我手动执行hive的时候,我是通过hive -f 执行的,得到的结果数据大约有5000W条,然而我把一样的sql放到kettle中执行(注:kettle中我不愿意在服务器的某个地方写个文件来存放sql,这样后面的人也不好维护,还要去服务器上看我的sql文本,所以kettle中我直接hive -e 执行),结果我发现kettle出来的数据只有50W,你说滑稽不滑稽。。。。
经过折磨,最后在同事的帮助下,我们发现,hive -e "要执行的sql",这种在引号里面使用2个反斜杠,会出现问题,具体什么问题,我还说不太清楚,但是双引号里面用2个反斜杠确实是会有些冲突(因为hive -f 没有使用到双引号,应该是把这个文本直接传入到hive的类当中,所以没有这样的问题)
因此使用hive -e "要执行的sql" 这种方式跑数据,千万千万看看有没有反斜杠,多关注下反斜杠和双引号是否会冲突,这里我测出来,如果要使用 \\ ,就要替换成\\\\
所以:
select split(split(split(url,'/')[size(split(url,'/'))-1],'\\.')[0],'~')[0]
需要替换成
select split(split(split(url,'/')[size(split(url,'/'))-1],'\\\\.')[0],'~')[0]
这样就没有问题了!F***K~
最后总结下:如果你在hive中直接执行该命令,那么就只能有\\否则不生效,如果是hive -e(或者说sql命令外面有双引号引起来的),那么就需要用\\\\
hive -e 和hive -f 的注意点 (//和////)相关推荐
- hadoop离线阶段(第十三节)数据仓库、hive简介、hive安装和hive的三种交互模式
目录 数据仓库 数据仓库的基本概念 数据仓库的主要特征 数据仓库与数据库区别 数据仓库分层架构 数据仓库元数据管理 Hive简介 什么是Hive Hive的特点 Hive架构 Hive与Hadoop的 ...
- 认识Hive,以及Hive的数据定义与数据操作,hive的数据查询和hive函数
认识Hive 为什么要出现hive 前面知识我们讲到mapreudce计算框架,各位需要通过java编码的形式来实现设计运算过程,这对各位的编程能力提出了更高的要求,难道没有门槛更低的方式来实现运算的 ...
- Hive第一天——Hive介绍以及简单使用
Hive第二天--Hive介绍以及简单使用 自己的话:黑发不知勤学早,白首方悔读书迟 每天都要保持前进! 一.什么是Hive 数据库: mysql.oracle.sqlserver.DB2.sqlit ...
- 《Hive系列》Hive详细入门教程
目录 1 Hive基本概念 1.1 什么是Hive Hive简介 Hive:由FaceBook开源用于解决海量结构化日志的数据统计工具 Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据 ...
- 2、Hive:启动Hive
目录 1 初始化元数据库 1)登陆MySQL 2)新建Hive元数据库 3)初始化Hive元数据库 2 启动Hive 1)先启动hadoop集群 2)启动Hive 3)使用Hive 4)开启另一个窗口 ...
- Hive学习——单机版Hive的安装
目录 一.基本概念 (一)Hive概念 (二)优势和特点 (三)Hive元数据管理 (四)Hive架构 (五)Hive Interface – 其他使用环境 二.Hive环境搭建 1.自动安装脚本 2 ...
- Hive Sql 大全(hive函数,hive表)
Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...
- 【Hive】《Hive编程指南》梳理
转载请注明出处 第1章 基础知识 Hive不支持事务(标注:低版本不支持,高版本ACID支持) Hive不支持OLTP(联机事务处理)所需要的关键功能,而更接近成为一个OLAP(联机分析技术)工具. ...
- Hive:解决Hive创建文件数过多的问题
Hive:解决Hive创建文件数过多的问题 参考文章: (1)Hive:解决Hive创建文件数过多的问题 (2)https://www.cnblogs.com/wcwen1990/p/7600161. ...
- hive 安装_7.Hive介绍以及安装
hive简介 Hive : 数据仓库. Hive:解释器,编译器,优化器等. Hive 运行时,元数据存储在关系型数据库里面. Hive架构 1.Hive将元数据存储在数据库中,如mysql.derb ...
最新文章
- 解决hash冲突的常用方法
- 为什么 GROUP BY 之后不能直接引用原表中的列?
- Android应用开发-广播和服务
- 二、制作最小linux系统
- JVM - Class常量池 || 运行时常量池
- Kubernetes环境下的各种调试方法
- 在从1到n的正数中1出现的次数
- 易创互联 php,易创网站管理系统(DIRCMS) 2011 SP3 UTF8
- 如何解决python中编码错误的问题_【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法...
- arcgis xml 下载 切片_xml格式文件如何用arcgis进行编辑和更新
- [转]对当前自然语言处理方法论中的一个疑惑
- linux 扫描开放的端口命令,在Linux系统中检查(扫描)开放端口的方法
- 龙骨导出html文件打不开,一种用于铝型材与龙骨的连接结构的连接件的制作方法...
- 过滤器 和 拦截器的 6个区别,别再傻傻分不清了
- 缓存应用(一)Ehcache使用介绍
- ubuntu16.04 lidar_align实现三维激光雷达和Imu联合标定
- ppt中如何合并流程图_PPT中流程图如何分支?
- 《数据清洗》——kettle基本工具的使用
- Linux基础系列(2命令帮助的详细获取)
- vscode的vue代码提示与补全没反应(vetur问题)