【Hive】分隔符 『 单字节分隔符 | 多字节分隔符』
文章目录
- 1. 概述
- 2. 单字节分隔符
- 方法:使用delimited关键字
- 3. 其它复杂情况
- 方式一:写MR程序进行字符替换转为单字节分隔符问题(不推荐)
- 方式二:自定义InputFormat转为单字节分隔符问题(不推荐)
- 方式三:使用serde关键字 (推荐)
1. 概述
在创建表时,可以使用row format ...
指定分隔符形式。比如:
create table external student (name string,age int
);
row format delimited fields terminated by ','
但是,根据原始数据分隔符的复杂程度,需要指定不同的分隔形式。比如:
- 情况一:分隔符为单字节
- 分隔符为多字节
- 字段中包含了分隔符
2. 单字节分隔符
方法:使用delimited关键字
加上delimited
关键字,即使用row format delimited
:用于处理单分隔符问题
fields terminated by ','
:每个列之间用,
分割collection items terminated by '-'
:集合之间的元素用-
分割map keys terminated by ':'
:键值对之间用:
分割lines terminated by '\n'
:每一行数据按\n
分割
create table external student (name string,age int
);
row format delimitedfields terminated by ','collection items terminated by '-'map keys terminated by ':'lines terminated by '\n';
3. 其它复杂情况
方式一:写MR程序进行字符替换转为单字节分隔符问题(不推荐)
不推荐,因此不详细介绍,具体可见:https://www.bilibili.com/video/BV1L5411u7ae?p=112&vd_source=5534adbd427e3b01c725714cd93961af
缺点:
- 写完替换分隔符的MR程序后,要导成jar包,再上传到hive。跑完替换分隔符的MR程序后,再去跑创建表的MR程序。故需要跑两个MR程序。
- 改变了原始数据
方式二:自定义InputFormat转为单字节分隔符问题(不推荐)
不推荐,因此不详细介绍,具体可见:https://www.bilibili.com/video/BV1L5411u7ae?p=114&vd_source=5534adbd427e3b01c725714cd93961af
缺点:
- 在导入数据时进行分隔符的替换。虽然只用跑一个创建表的MR程序。但是也要导jar包,很麻烦。
方式三:使用serde关键字 (推荐)
除了使用最多的LazySimpleSerDe,Hive该内置了很多SerDe类;
官网地址:https://cwiki.apache.org/confluence/display/Hive/SerDe
多种SerDe用于解析和加载不同类型的数据文件,常用的有ORCSerDe 、RegexSerDe、JsonSerDe等。
这里介绍的是:使用RegexSerDe来加载特殊数据的问题,使用正则匹配来加载数据。
那么这一块的难点在于 正则表达式 的构造。 比如:
create table apachelog(ip string, --IP地址stime string, --时间mothed string, --请求方式url string, --请求地址policy string, --请求协议stat string, --请求状态body string --字节大小
)
--指定使用RegexSerde加载数据
row format serde 'org.apache.hadoop.hive.serde2.RegexSerDe'--指定正则表达式with serdeproperties ("input.regex" = "([^ ]*) ([^}]*) ([^ ]*) ([^ ]*) ([^ ]*) ([0-9]*) ([^ ]*)")
stored as textfile ;
【Hive】分隔符 『 单字节分隔符 | 多字节分隔符』相关推荐
- 【Hive---02】hive概述『 what | 优缺点 | 架构 | Hivevs MySQL』
文章目录 1. 什么是Hive? 2. Hive优缺点 3. Hive架构 4. Hive vs MySQL 1. 什么是Hive? hive是建立在Hadoop上的一个一个数据仓库. 它可以将存储在 ...
- Hive多字节分隔符解决方案
目录 1 应用场景 1.1 Hive中的分隔符 1.2 特殊数据 2 问题与需求 2.1问题 2.2 情况二:数据中包含了分隔符 3 解决方案 3.1 解决方案一:替换分隔符 3.2 解决方案二:Re ...
- 大数据Hive多字节分隔符
目录 1 应用场景 1.1 Hive中的分隔符 1.2 特殊数据 2.2 需求 3 解决方案一:替换分隔符 3.1 方案概述 3.2 程序开发 3.3 重新建表加载数据 3.4 查看结果 3.5 总结 ...
- hive 十六进制转十进制_Hive使用十六进制分隔符异常分析
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.问题描述 通过sqoop抽取Mysql表数据到hive表,发现hive表所有列显示为null Hive表的分隔符为"\u0 ...
- hive 十六进制转十进制_0026-Hive使用十六进制分隔符异常分析
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.问题描述 通过sqoop抽取Mysql表数据到hive表,发现hive表所有列显示为null Hive表的分隔符为"u00 ...
- html文本分隔符,HTML快速入门8——HTML分隔符,一般语法,PRE标签,特殊字符显示...
HTML中的分隔符:空格和回车 在HTML中回车(换行)和空格的作用是相同的,都是分隔符. 浏览器将忽略连续的分隔符.也就是说连续多个分隔符只看做一个. 例子 1 2 3 4 5 ...
- 单字节字符集,多字节字符集,Unicode
我们在这里介绍一下字符类型.这里有3种编码模式对应3种字符类型. 第一种编码类型是单子节字符集(single-byte character set or SBCS).在这种编码模式下, ...
- c语言与多字节编码,什么是单字节,双字节和多字节编码
满意答案 sjdysppgd 2016.03.15 采纳率:58% 等级:9 已帮助:1567人 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他 ...
- 字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:宽字节编码
字符字节与编码 字符是人们常用的一些记号,比如"1", "汉", "お","℃"等等,包括各种语系的语言和一些符号都可以 ...
最新文章
- 对cv::findHomography未定义的引用的解决方法
- matlab语音信号分析实验报告,DSP实验二 语音信号分析与处理,南京理工大学紫金学院实验报告,信号与系统...
- CSAPP:第十一章 网络编程
- 微软、阿里抢占开源一线,JavaScript、Python 备受热捧,GitHub 2020 数字洞察报告揭晓!...
- 用java怎么让时间走动起来,java脚本实现时间刷新
- 【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)
- 前端使用vue+ js-xlsl + elemen-ui实现导出Excel表格(绝对好使, 前端有问题直接关注我, 或者评论立刻给你回应, 专业解决)
- unity tags的坑
- python网络爬虫笔记
- Uncaught Exception: Error [ERR REQUIRE ESM]: requireO of ES Modul……
- dell服务器键盘接口位置,键盘与接口介绍_戴尔笔记本电脑_笔记本评测-中关村在线...
- 安装指定版本Kubernetes
- 泽塔云CEO查乾:2019年超融合进入成熟市场,GPU云带来千亿级市场
- 币泳金:理安全的储存数字货币,冷钱包与热钱包的管理
- BZOJ[3620]似乎在梦中见过的样子 KMP
- javaScript常用语法(持续更新)
- React----JSX语法
- 中国科学院计算机与控制学院怎么样,中国科学院计算机与控制学院硕士生导师:马丙鹏副教授...
- THOR Pro已具备PAM4 ANEG-LT测试解决方案
- yolov5中workers设置问题