文章目录

  • 1. 概述
  • 2. 单字节分隔符
    • 方法:使用delimited关键字
  • 3. 其它复杂情况
    • 方式一:写MR程序进行字符替换转为单字节分隔符问题(不推荐)
    • 方式二:自定义InputFormat转为单字节分隔符问题(不推荐)
    • 方式三:使用serde关键字 (推荐)

1. 概述

在创建表时,可以使用row format ...指定分隔符形式。比如:

create table external student (name string,age int
);
row format delimited fields terminated by ','

但是,根据原始数据分隔符的复杂程度,需要指定不同的分隔形式。比如:

  1. 情况一:分隔符为单字节
  2. 分隔符为多字节
  3. 字段中包含了分隔符

2. 单字节分隔符

方法:使用delimited关键字

加上delimited关键字,即使用row format delimited:用于处理单分隔符问题

  1. fields terminated by ',':每个列之间用,分割
  2. collection items terminated by '-':集合之间的元素用-分割
  3. map keys terminated by ':':键值对之间用:分割
  4. 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

缺点:

  1. 写完替换分隔符的MR程序后,要导成jar包,再上传到hive。跑完替换分隔符的MR程序后,再去跑创建表的MR程序。故需要跑两个MR程序。
  2. 改变了原始数据

方式二:自定义InputFormat转为单字节分隔符问题(不推荐)

不推荐,因此不详细介绍,具体可见:https://www.bilibili.com/video/BV1L5411u7ae?p=114&vd_source=5534adbd427e3b01c725714cd93961af

缺点:

  1. 在导入数据时进行分隔符的替换。虽然只用跑一个创建表的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】分隔符 『 单字节分隔符 | 多字节分隔符』相关推荐

  1. 【Hive---02】hive概述『 what | 优缺点 | 架构 | Hivevs MySQL』

    文章目录 1. 什么是Hive? 2. Hive优缺点 3. Hive架构 4. Hive vs MySQL 1. 什么是Hive? hive是建立在Hadoop上的一个一个数据仓库. 它可以将存储在 ...

  2. Hive多字节分隔符解决方案

    目录 1 应用场景 1.1 Hive中的分隔符 1.2 特殊数据 2 问题与需求 2.1问题 2.2 情况二:数据中包含了分隔符 3 解决方案 3.1 解决方案一:替换分隔符 3.2 解决方案二:Re ...

  3. 大数据Hive多字节分隔符

    目录 1 应用场景 1.1 Hive中的分隔符 1.2 特殊数据 2.2 需求 3 解决方案一:替换分隔符 3.1 方案概述 3.2 程序开发 3.3 重新建表加载数据 3.4 查看结果 3.5 总结 ...

  4. hive 十六进制转十进制_Hive使用十六进制分隔符异常分析

    温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.问题描述 通过sqoop抽取Mysql表数据到hive表,发现hive表所有列显示为null Hive表的分隔符为"\u0 ...

  5. hive 十六进制转十进制_0026-Hive使用十六进制分隔符异常分析

    温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.问题描述 通过sqoop抽取Mysql表数据到hive表,发现hive表所有列显示为null Hive表的分隔符为"u00 ...

  6. html文本分隔符,HTML快速入门8——HTML分隔符,一般语法,PRE标签,特殊字符显示...

    HTML中的分隔符:空格和回车 在HTML中回车(换行)和空格的作用是相同的,都是分隔符. 浏览器将忽略连续的分隔符.也就是说连续多个分隔符只看做一个. 例子 1 2   3         4 5 ...

  7. 单字节字符集,多字节字符集,Unicode

    我们在这里介绍一下字符类型.这里有3种编码模式对应3种字符类型. 第一种编码类型是单子节字符集(single-byte   character   set   or   SBCS).在这种编码模式下, ...

  8. c语言与多字节编码,什么是单字节,双字节和多字节编码

    满意答案 sjdysppgd 2016.03.15 采纳率:58%    等级:9 已帮助:1567人 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他 ...

  9. 字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:宽字节编码

    字符字节与编码 字符是人们常用的一些记号,比如"1", "汉", "お","℃"等等,包括各种语系的语言和一些符号都可以 ...

最新文章

  1. 对cv::findHomography未定义的引用的解决方法
  2. matlab语音信号分析实验报告,DSP实验二 语音信号分析与处理,南京理工大学紫金学院实验报告,信号与系统...
  3. CSAPP:第十一章 网络编程
  4. 微软、阿里抢占开源一线,JavaScript、Python 备受热捧,GitHub 2020 数字洞察报告揭晓!...
  5. 用java怎么让时间走动起来,java脚本实现时间刷新
  6. 【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)
  7. 前端使用vue+ js-xlsl + elemen-ui实现导出Excel表格(绝对好使, 前端有问题直接关注我, 或者评论立刻给你回应, 专业解决)
  8. unity tags的坑
  9. python网络爬虫笔记
  10. Uncaught Exception: Error [ERR REQUIRE ESM]: requireO of ES Modul……
  11. dell服务器键盘接口位置,键盘与接口介绍_戴尔笔记本电脑_笔记本评测-中关村在线...
  12. 安装指定版本Kubernetes
  13. 泽塔云CEO查乾:2019年超融合进入成熟市场,GPU云带来千亿级市场
  14. 币泳金:理安全的储存数字货币,冷钱包与热钱包的管理
  15. BZOJ[3620]似乎在梦中见过的样子 KMP
  16. javaScript常用语法(持续更新)
  17. React----JSX语法
  18. 中国科学院计算机与控制学院怎么样,中国科学院计算机与控制学院硕士生导师:马丙鹏副教授...
  19. THOR Pro已具备PAM4 ANEG-LT测试解决方案
  20. yolov5中workers设置问题

热门文章

  1. 游戏开发常用算法 (一)
  2. 想请教一下:女生结构工程师和硬件工程师,哪个更有职业前景?
  3. Golandidea 2020.01破解版
  4. 简述如何编辑出一篇漂亮的微信公众号文章
  5. VS 2017 生成类图
  6. 后羿 09 ‖ 昆仑
  7. APP运营4大阶段:拉新、留存、促活、营收,怎么解读?
  8. (欧几里得算法)判断互质数的方法 (1130)
  9. 在广发行执行项目管理-关于进度安排的理解
  10. STM32F429图形加速器(DMA2D)