在创建Hive表时,默认行分隔符"^A",列分隔符"\n",这两项也是可以设置的。在实际开发中,一般默认使用默认的分隔符,当然有些场景下也会自定义分隔符。

创建表1:

spark-hive
use test_db;# 创建外部表
CREATE EXTERNAL TABLE test_tb (
user_id bigint COMMENT '用户ID',
user_name string COMMENT '用户名'
)
LOCATION '/home/test_db/test_tb'
;

查看表1:

show create table test_tb;
20/04/13 11:47:49 INFO SparkHiveShell: current SQL: show create table test_tb
CREATE EXTERNAL TABLE `test_tb`(`user_id` bigint COMMENT '用户ID',`user_name` string COMMENT '用户名')
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'  # 默认分隔符,行分割符:"\n",列分割符:"^A"
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'  # 默认存储格式textfile
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' # HDFS存储目录
LOCATION'hdfs://namenode.xxx.com:9000/home/test_db/test_tb'
TBLPROPERTIES ('transient_lastDdlTime'='1586749208')
Time taken: 1.702 s

创建表2:

CREATE EXTERNAL TABLE test_tb_2 (
user_id bigint COMMENT '用户ID',
user_name string COMMENT '用户名'
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
LOCATION '/home/test_db/test_tb_2'
;

查看表2:

show create table test_tb_2;
20/04/13 11:55:22 INFO SparkHiveShell: current SQL: show create table test_tb_2
CREATE EXTERNAL TABLE `test_tb_2`(`user_id` bigint COMMENT '用户ID', `user_name` string COMMENT '用户名')
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' # 列分割符,表2的列分割符为:"\t"LINES TERMINATED BY '\n'  # 行分割符,表2的行分隔符为:"\n"
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION'hdfs://namenode.xxx.com:9000/home/test_db/test_tb_2'
TBLPROPERTIES ('transient_lastDdlTime'='1586749805')
Time taken: 2.485 s

从如上两个例子中可以看出:Hive默认的列分隔符类型为“org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe”。

Hive中默认的列分割符为:"^A"(CTRL+V,CTRL+A),在数据文件中为:"1^AJom\n",如果需要自定义分隔符,需要设置 "ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'",因为^A八进制编码为“\001”,如果使用默认的分隔符,可以不加此参数。

Hive中默认行分隔符为"\n",也可以通过"LINES TERMINATED BY '\n' "来设置。

一般来说Hive默认行分隔符为换行符,如果非要自定义分隔符,可以通过定义INPUTFORMAT和OUTPUTFORMAT类来指定特定的(行|列)分隔符。

提示

使用时需要注意:数据中如果包含:"\001","\n"等分隔符,需要提前处理掉。正常在HQL中我们需要REGEXP_REPLACE(字段,'\r|\n|\r\n|\001|\002|\003|\t', '')把常用的分隔符转移掉,免得带来串列,断行的困扰。

Hive的列分隔符和行分隔符相关推荐

  1. hive的列分隔符和行分隔符的使用

    目录 一.Hive中默认的分割符如下 二.分隔符的指定与使用 三.建好表之后更改字段分隔符 一.Hive中默认的分割符如下 分隔符 描述 \n 行分隔符 ^A 字段分隔符 \001 ^B array. ...

  2. 详解hive的列分隔符和行分隔符的使用

    hive中在创建表时,一般会根据导入的数据格式来指定字段分隔符和列分隔符.一般导入的文本数据字段分隔符多为逗号分隔符或者制表符(但是实际开发中一般不用着这种容易在文本内容中出现的的符号作为分隔符),当 ...

  3. hive 如何将数组转成字符串_hive详细笔记(八)-Hive之列转行和行转列(附带讲解视频 )...

    1 行转列 1.1 函数 CONCAT(string A/col, string B/col-):返回输入字符串连接后的结果,支持任意个输入字符串; CONCAT_WS(separator, str1 ...

  4. 【Shell】awk命令--输出某列,列求和,列求平均值,列最大值,列去重复,取倒列,过滤行,匹配,不匹配,内置变量|定义分隔符|多个分隔符...

    目录 awk基本语法 awk输出某几列 awk遍历文件行处理 awk中运行shell命令 方法1:awk 内置函数system 方法2 通过awk  print 交给bash awk中运行shell命 ...

  5. 【Shell】awk命令--输出某列,列求和,列求平均值,列最大值,列去重复,取倒列,过滤行,匹配,不匹配,内置变量|定义分隔符|多个分隔符

    目录 awk基本语法 awk输出某几列 awk遍历文件行处理 awk中运行shell命令 方法1:awk 内置函数system 方法2 通过awk  print 交给bash awk中运行shell命 ...

  6. hive分隔符_HIVE-默认分隔符的(linux系统的特殊字符)查看,输入和修改

    这段时间做hive的时候,用到了系统默认分隔符.通常下面2中情况我们需要需要用到分隔符 1,制作table的输入文件,有时候我们需要输入一些特殊的分隔符 2,把hive表格导出到本地时,系统默认的分隔 ...

  7. lineseparator_首选System.lineSeparator()以用Java编写系统相关的行分隔符字符串

    lineseparator JDK 7在java.lang.System类上引入了一个名为lineSeparator()的新方法. 该方法不期待任何参数,并返回一个String ,它表示"取 ...

  8. 首选System.lineSeparator()以用Java编写系统相关的行分隔符字符串

    JDK 7在java.lang.System类上引入了一个名为lineSeparator()的新方法. 该方法不期待任何参数,并返回一个String ,它表示"取决于系统的行分隔符字符串.& ...

  9. 《Python Cookbook 3rd》笔记(5.3):使用其他分隔符或行终止符打印

    使用其他分隔符或行终止符打印 问题 你想使用 print() 函数输出数据,但是想改变默认的分隔符或者行尾符. 解法 可以使用在 print() 函数中使用 sep 和 end 关键字参数,以你想要的 ...

最新文章

  1. nginx文件服务器html美化,关于nginx:Nginx浏览目录配置及美化
  2. java中引导页面的,设计模式之模板模式引导篇
  3. java显示临时变量目录默认路径
  4. feign整合sential,Feign中使用Sentinel熔断器防止服务雪崩
  5. [数论]线性筛——约数个数与约数和
  6. python tkinter实例_python绘制一个图形示例源码(tkinter)
  7. 基于JavaFX实现的数据库学生管理系统
  8. (48)VHDL实现8位奇偶校验电路(process语句语句)
  9. 认知觉醒是成长的首因,送3本硬核认知提升书
  10. 古董笔记本体验Windows XP Professional x64 Edition
  11. Windows网络编程——查询本机的主机名称及IP地址(控制台应用程序)
  12. 爬取CSDN博客文章,统计文章历史数据
  13. win7下好用的虚拟光驱,免安装,体积小
  14. 仿制金山毒霸专杀工具界面
  15. 如何设置python类的私有属性
  16. 微信支付分开通了!对飙芝麻信用分!开通与查看攻略!
  17. Elasticsearch教程 | 第三篇:审计设置
  18. STM32:外部中断的使用
  19. QQ邮箱如何获得邮我代码
  20. DB2 9 使用拓荒(733 检验)认证指南,第 4 部分: 嵌入式 SQL 编程(3)

热门文章

  1. 钉钉微应用怎么进入_钉钉微应用开发免登流程
  2. 不同sheet 选择若干条件_干货 | 不同加工条件下如何正确选择铣刀
  3. lisp的vla函数画矩形_python之:tkinter画哆啦A梦
  4. zuulfilter添加例外_SpringCloud之Zuul 自定义filter
  5. linux安装openssh 密码错误,Linux安装openssh的后门补丁
  6. 【Vulnhub靶机系列】DC3
  7. c库函数tmpfile
  8. linux下利用C或C++语言调用需要root权限的函数
  9. elasticsearch-jdbc同步myslq数据到elasticsearch
  10. AI面试必备!你不可不知的10个深度学习方法