hive 特殊分隔符 0X1B

最近做测试遇到一个hive特殊分隔符的问题--oracle导出的数据文件分隔符符为0x1B导入的问题,0x1B是不可见字符,测试了很久才让hive识别到,

原因是hive指定分隔符除了直接写明确的分隔符时,不能识别十六进制的0x1B要转换成八进制的表示,且必须在前面加0

给的分隔符是十六进制 0x1B,对应十进制27,转换成八进制为33,故分隔符为033,注意,前面的0不能少,否则无法识别

指定分隔符语法为 :FIELDS TERMINATED BY ‘\033‘

附样例:

样例数据

2012-10-310007010012610402170100***104020001个人通知***款利息支出6012012-10-311
2012-08-310007010012610601170100***6106010001应付活****存款息6012012-08-311
2012-08-310007010012610701170100***26107010001三个月***储蓄存款利息支出6012012-08-311

ue中查看,

复制到UE ctrl+H查看

建表语句

create external table T_CAS_ACCR_OC_BOOK
(
  set_date        DATE,
  oper_no         VARCHAR2(8),
  seqno           NUMBER(8),
  sub_seqno       NUMBER(8),
  act_seqno       NUMBER(8),
  trans_bran_code VARCHAR2(10),
  sub_code        VARCHAR2(8),
  cur_code        NUMBER(8),
  acct_no         VARCHAR2(32),
  acct_name       VARCHAR2(120),
  acct_type       NUMBER(5),
  cust_no         VARCHAR2(30),
  return_cause    VARCHAR2(60),
  chk_no          VARCHAR2(8),
  auth_no         VARCHAR2(8),
  flag            VARCHAR2(1),
  last_mod_date   DATE,
  acct_class      NUMBER(4)
)  
FIELDS TERMINATED BY ‘\033‘
LOCATION ‘/tmp/t_cas_accr_oc_book‘;

时间: 2024-10-27 02:58:47

hive 特殊分隔符 0X1B的相关文章

hive 的分隔符、orderby sort by distribute by的优化

一.Hive 分号字符 分号是SQL语句结束标记,在HiveQL中也是,但是在HiveQL中,对分号的识别没有那么智慧,例如: select concat(cookie_id,concat(';','zoo')) fromc02_clickstat_fatdt1 limit 2; FAILED: Parse Error: line 0:-1 cannot recognize input'<EOF>' in function specification 可以推断,Hive解析语句的时候,只要遇到

Sqoop_mysql,hive,hdfs导入导出操作

一.准备数据 # 在我的mysql下创建数据库和表,并插入几条数据 mysql> create database if not exists student default character set utf8 collate utf8_general_ci; mysql> use student; mysql> create table if not exists stu_info( id int(10) primary key not null auto_increment, nam

Hive 函数

1. 内置运算符在Hive有四种类型的运算符:· 关系运算符· 算术运算符· 逻辑运算符· 复杂运算内容较多,见<Hive官方文档>或者<hive常用运算和函数.doc>2. 内置函数https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF测试各种内置函数的快捷方法:创建一个dual表create table dual(id string);load一个文件(只有一行内容:内容为一个空格)到dual表se

0026-Hive使用十六进制分隔符异常分析

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.问题描述 通过sqoop抽取Mysql表数据到hive表,发现hive表所有列显示为null Hive表的分隔符为"\u001B",sqoop指定的分隔符也是"\u001B" 通过命令show create table test_hive_delimiter查看建表语句如下: 0: jdbc:hive2://localhost:10000/> show create table test_hi

标签整理

1. MapReduce与mysql连接总结 应用场景: 在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP 的需求,我们需要 mapreduce 与 mysql 进行数据的交互,而这些是 hbase 或者 hive 目前亟待改进的地方. 1.从mysql中 读数据: Hadoop访问关系数据库主要通过一下接口实现的:DBInputFormat类,包所在位置:org.apache.hadoop.mapred.lib.db 中.D

改变hive导出文件的分隔符

工作中遇见一个问题. hive>insert overwrite local directory '/home/hadoop/tmp/ts' select 列1,列2,列3 from table; 这样导出 含有 特殊字符,数据不能直接导入到excel表格中,UE或sublime打开也都存在特殊字符.特殊字符是hive预定义的,具体可以看官方文档. 使用 '\t' (即TAB键)作为分隔符,也可以是其他的分隔符. hive> insert overwrite local directory '

Hive insert into directory 命令输出的文件没有列分隔符分析和解决

参考资料:http://stackoverflow.com/questions/16459790/hive-insert-overwrite-directory-command-output-is-not-separated-by-a-delimiter 问题描述: Hive insert into directory 命令输出的文件没有指定列分隔符,输出结果就像变成了一个字符串. 通过CREATE EXTERNAL TABLE 和load 方式,尝试了多种分隔符都不能正确的区分,所有的字段内容

Hive中将查询结果导出到指定分隔符的文件中

在Hive0.11.0版本中新引进了一个新的特性,当用户将Hive查询结果输出到文件中时,用户可以指定列的分割符,而在之前的版本是不能指定列之间的分隔符. 在Hive0.11.0之前版本如下使用,无法指定分隔符,默认为\x01: hive (hive)> insertoverwrite local directory '/home/hadoop/export_hive' select * from a; Query ID =hadoop_20150627174342_64852f3a-56ed-

hive如何处理多分隔符数据

问题描述: 大数据维稳需求中,客户提供的测试数据为多个字符做分隔符('|#'),在pig中会直接报错,hive中只认第一个分隔符. 由于数据量比较大(160G),在文本中替换成单个字符分隔符已不现实,以下提供两个方案解决这一问题. 样例数据 110|#警察 120|#医院 方案1:利用hive自带的序列化/反序列化的方式RegexSe add jar /home/cup/software/--/hive-contrib-0.10.0-cdh4.4.0.jar; create table test