Hive 多分隔符的使用 (转载)
方法一)通过org.apache.hadoop.hive.contrib.serde2.RegexSerDe格式的serde。
1) 建表语句
#指定以^|~作为分隔符
CREATE TABlE tableex3(id STRING, name STRING)
ROW FORMAT SERDE'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "^(.)\^\|~(.)$"
)
STORED AS TEXTFILE;
2) 准备数据
1^|~wee
2^|~do
we^|~xml
%^|~we
3) 转载数据
load data local inpath '/var/lib/hadoop-hdfs/tee.txt'into table tableex3;
4) 验证:
select * from tableex3;
+--------------+----------------+--+
| tableex3.id | tableex3.name |
+--------------+----------------+--+
| 1 | wee |
| 2 | do |
| we | xml |
| % | we |
| NULL | NULL |
+--------------+----------------+--+
方法二)通过org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe格式的serde。
#指定以^|~作为分隔符
CREATE TABLE multi_delim (col1 STRING, col2 STRING,Col3STRING) ROW FORMAT SERDE'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' WITH SERDEPROPERTIES("field.delim"="^|~");
cat /var/lib/hadoop-hdfs/tee3.txt
1^|~wee^|~hi
2^|~do^|~where
we^|~xml^|~rice
%^|~we^|~^|
load data local inpath '/var/lib/hadoop-hdfs/tee.txt'into table tableex3;
select * from multi_delim;
+-------------------+-------------------+-------------------+--+
| multi_delim.col1 | multi_delim.col2 | multi_delim.col3 |
+-------------------+-------------------+-------------------+--+
| 1 | wee | hi |
| 2 | do | where |
| we | xml | rice |
| % | we | ^| |
| | NULL | NULL |
Hive 多分隔符的使用 (转载)的更多相关文章
- Hive 特殊分隔符处理
HIVE特殊分隔符处理 Hive对文件中的分隔符默认情况下只支持单字节分隔符,,默认单字符是\001.当然你也可以在创建表格时指定数据的分割符号.但是如果数据文件中的分隔符是多字符的,如下图: 01| ...
- Hive 默认分隔符
引言 Hive 中的默认分隔符是 ^A (\001) ,这是一种特殊的分隔符,使用的是 ASCII 编码的值,键盘是打不出来的 查看 Hive 默认分隔符文件 Linux 上的文件 以 \001 作为 ...
- hive 的分隔符、orderby sort by distribute by的优化
一.Hive 分号字符 分号是SQL语句结束标记,在HiveQL中也是,可是在HiveQL中,对分号的识别没有那么智慧,比如: select concat(cookie_id,concat(';',' ...
- Hive 指定分隔符,将表导出到本地
hive表的数据源有四种: hbase hdfs 本地 其他hive表 而hive表本身有两种: 内部表和外部表. 而hbase的数据在hive中,可以建立对应的外部表(参看hive和hbase整合) ...
- hive默认分隔符引起的日志分割问题
Hive中的外部表 对于Hive中的外部表来说,因为表是外部的,Hive认为其并不拥有这份数据,删除该表并不会真正删除其中的数据,其中的表描述元信息会被删除掉. 对数据进行分区后,对于管理表,可以 ...
- Hive和HBase的区别 转载:https://www.cnblogs.com/guoruibing/articles/9894521.html
1.Hive和HBase的区别 1)hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce. 2)hive是面向行存储的数据库. 3)Hive本身 ...
- hive中分隔符‘\001’到底是什么鬼
答:hive中的默认的是'\001'是一种特由的分隔符 使用的是ascii编码的值,键盘是打不出来的.
- Hive SQL的编译过程[转载自https://tech.meituan.com/hive-sql-to-mapreduce.html]
https://tech.meituan.com/hive-sql-to-mapreduce.html Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hi ...
- hive默认分隔符
默认分隔符‘\001',对应ascii码SOH: 通过cat -A filename可以查看分隔符:
随机推荐
- Python并发实践_02_通过yield实现协程
python中实现并发的方式有很多种,通过多进程并发可以真正利用多核资源,而多线程并发则实现了进程内资源的共享,然而Python中由于GIL的存在,多线程是没有办法真正实现多核资源的. 对于计算密集型 ...
- PCoA主坐标分析
来源:http://blog.sina.com.cn/s/blog_670445240101nlss.html 1 背景介绍 这是一种排序方法.假设我们对N个样方有了衡量它们之间差异即距离的数据, ...
- jsonp及cors
一. jsonp实现原理是利用script标签可以获取不同源资源的特点,来达到跨域访问某个资源的目的.具体行为如下: 创建一个script标签,将请求地址写入它的src属性,将这个script外链插入 ...
- dubbo源码—service export
在应用编写好服务并进行之后,dubbo负责将服务export出去,dubbo export服务的时候主要做了以下几件事: 将服务export到本地(根据scope的配置) 创建Invoker(启动本地 ...
- 转载:DNS解析过程详解
2015-09-20 此好文是转载,如有侵权联系我,立马删掉 DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com. ...
- Windows上最大传输单元MTU值的查看和设置
最近使用ssh工具在VPN环境下连接一个生产环境的Linux主机的时候,发现经常出现输入命令后卡死的情况.最开始以为是Linux主机的问题,问了一些老同事之后发现原来是我自己电脑的最大传输单元MTU和 ...
- 使用ui-route实现多层嵌套路由
一.预期实现效果: https://liyuan-meng.github.io/uiRouter-app/index.html (项目地址:https://github.com/liyuan-meng ...
- Linux上leveldb的安装和使用
1.首先从官网上下载leveldb进行编译 git clone https://github.com/google/leveldb.git cd leveldb make 2.将头文件和动态链接库拷到 ...
- PHP正在进行时-字符串动态插入变量
在PHP中,一般用双引号或者单引号将字符串括起来. echo "张三李四王五叫上赵六一起去'喝酒'". 如果要动态将将数据插入到字符串中,我们除了使用.号拼接,还可以通过使用{}来 ...
- 生成器&迭代器
通过列表生成式,我们可以快速创建一个列表,但是受到内存的限制,列表容量是有限的,而且一个包含100万个元素的列表不仅占用很大的存储空间,如果我们仅仅需要访问当前几个元素,那后面绝大多数元素占用的空间都 ...