【Hive】分隔符 『 单字节分隔符 | 多字节分隔符』

news2024/11/29 2:45:45

文章目录

  • 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 delimited
	fields 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 ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

矩阵

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 车车的爱之矩阵是一个行数为 n&#xff0c;列数为 m 的矩阵并满足以下条件: 111. 矩阵元素 xij​ 为整数并满足 0<∣xij​∣⩽114514。 222. 对于在矩阵边界的元素&#xff0c;即 iii 为 1 或…

[附源码]Node.js计算机毕业设计非处方药的查询与推荐系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

Flutter - ScrollController 滚动监听及控制

1 ScrollController jumpTo(double offset)、animateTo(double offset,…)&#xff1a;这两个方法用于跳转到指定的位置&#xff0c;它们不同之处在于&#xff0c;后者在跳转时会执行一个动画&#xff0c;而前者不会。 实例 点击按钮返回顶部 ,且按钮在list滑动一定距离后才…

事务·数据库

事务就是一个完整的业务逻辑 举例&#xff1a; a账户转账至b账户&#xff0c;该操作是一个工作单元&#xff0c;要么同时成功要么同时失败&#xff0c;不可再分。 只有DML(INSERT DELETE UPDATE)语句才会有和事务有关系&#xff0c;因为这三个是操作数据库表中数据进行增删改的…

磨金石教育兴趣技能分享||运用好透视规律,就不会为大场面拍摄发愁了

许多摄影初学者&#xff0c;在拍摄简单的单独景物照或人物照时&#xff0c;经过简单的练习往往很快就能得心应手。 当画面稍微大一些&#xff0c;各种景物元素增多&#xff0c;空间立体感变强时&#xff0c;就会不知所措。拍出的照片不协调&#xff0c;而且杂乱。 这时候&…

2.专题. 逻辑层次结构——树

1. 树结构概述 现实生活中&#xff0c;具有很多层次关系&#xff1a;归纳为一种树状结构&#xff08;一种层级结构&#xff09; 2. 二叉树 2.2 二叉树分类 3.1.2.1 满二叉树 高度为4的满二叉树 3.1.2.2 完全二叉树 若一棵二叉树至多只有最下面两层的结点的度数可以小于2…

保护私密文件夹,可以这样设置隐藏起来

很多小伙伴在工作或生活中&#xff0c;都会有一些文件资料&#xff0c;不希望被让人随意看到&#xff0c;想要隐藏起来。其实只需要一个简单的操作&#xff0c;就可以把文件隐藏起来&#xff0c;不让人发现。 首先&#xff0c;我们可以先将需要隐藏的文件都放在一个文件夹里&a…

java常见的遍历

日常遍历的几种方式 首先我们先了解一下集合容器中日常遍历的几种方式&#xff1a; List集合遍历方式&#xff08;ArrayList&#xff09; // 遍历list集合private static void listTest() {List<String> list new ArrayList<String>();list.add("liubei&quo…

【Redis】新增数据结构

BitMap位图 Redis提供了Bitmaps这个“数据类型”可以实现对位的操作&#xff1a; &#xff08;1&#xff09; Bitmaps本身不是一种数据类型&#xff0c; 实际上它就是字符串&#xff08;key-value&#xff09; &#xff0c; 但是它可以对字符串的位进行操作。 &#xff08;2…

操作系统学习笔记_3 管程;死锁;内存

管程 信号量挺琐碎的&#xff0c;而且容易出错&#xff0c;顺序错了都会影响结果。 管程内的数据只有在管程内的过程&#xff08;函数&#xff09;才能访问&#xff1b;一次只允许一个进程进入管程。 monitor 是 java 语法的管程&#xff0c;每次只允许一个进程访问&#xff0…

[附源码]Python计算机毕业设计房屋租赁系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

关于求解器HFSS的那些事,以一个差分对仿真实操为例

很多刚刚接触HFSS的朋友可能对Solution type中的Driven Modal&#xff08;模式驱动&#xff09;和Driven Terminal&#xff08;终端驱动&#xff09;的概念有点混淆&#xff0c;本文着重讲解这两种求解类型的区别。 一、模式驱动和终端驱动的理解 模式驱动和终端驱动是HFSS的…

1.专题 存储结构和逻辑结构

1. 存储结构 软件完成对象抽象&#xff0c;需要分配一定的内存资源。 根据对象对内存使用的特征&#xff0c;可以把数据存储的特征划分为&#xff1a; 顺序存储链接存储索引存储 和 散列存储 1.1 顺序存储 对象占用的资源表现为一段连续的内存存储 图示如下&#xff1a; M…

产品分享:Qt鸿途电子智慧白板(适合会议机、电子黑板、电子笔记、电子阅读器等场景),当前版本v1.0.0

​若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/128313385 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、…

使用notepad++插件远程编辑linux下的配置文件

目录 1.安装插件管理器(Plugin Manager) 2.安装NppFTP 3.使用nppFTP连接远程linux服务器 1.安装插件管理器(Plugin Manager) 如果没有则需要安装 32bit 在v7.50后&#xff08;包括7.50&#xff09;不带有插件管理器(Plugin Manager)&#xff0c;所以我们需要手动安装 Plug…

高校房产管理系统主要功能模块有哪些?

数图互通房产管理 数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b;通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋…

Spire.XLS for Java 12.11.8 新年/圣诞巨献

Spire.XLS for Java是一个专业的 Java Excel API&#xff0c;使开发人员无需使用 Microsoft Office 或 Microsoft Excel即可创建、管理、操作、转换和打印 Excel工作表。 谷歌轻松找破解版 Spire.XLS for Java 支持旧的 Excel 97-2003 格式&#xff08;.xls&#xff09;和新的…

KingbaseES V8R3集群备份恢复案例之--- timingbackup备份

案例说明&#xff1a; KingbaseES V8R3集群自带了timingbackup.sh的脚本&#xff0c;可以通过一个脚本执行逻辑和物理备份&#xff0c;逻辑备份采用sys_dump&#xff0c;物理备份适用sys_basebackup&#xff0c;本案例详细记录了脚本的使用。 适用版本&#xff1a; KingbaseES …

利用催眠技巧绕开OpenAI的内容政策限制(仅供研究使用)

fork的仓库&#xff1a;https://github.com/JanYork/chatgpt-chinese-prompt-hack 声明&#xff1a;请仅作研究之用&#xff0c;不要违规使用&#xff01; 在hack成功后,通过屏蔽moderetions的api请求,可以绕过OpenAI对于输出内容的审查. 地址为:https://chat.openai.com/back…

国产免费倾斜摄影模型在线发布平台,一键查看、编辑、分享场景!

数十GB庞大的城市级三维实景模型&#xff0c;想在Web端加载并实时交互&#xff0c;看到每块地形、建筑物、每寸土地细节&#xff0c;不是一般平台能承受的。一般只能靠人工手动将模型压缩&#xff0c;不仅耗时耗力&#xff0c;效果还不可控。毕竟城市级的大体量模型不是每台设备…