方法一)通过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 多分隔符的使用 (转载)的更多相关文章

  1. Hive 特殊分隔符处理

    HIVE特殊分隔符处理 Hive对文件中的分隔符默认情况下只支持单字节分隔符,,默认单字符是\001.当然你也可以在创建表格时指定数据的分割符号.但是如果数据文件中的分隔符是多字符的,如下图: 01| ...

  2. Hive 默认分隔符

    引言 Hive 中的默认分隔符是 ^A (\001) ,这是一种特殊的分隔符,使用的是 ASCII 编码的值,键盘是打不出来的 查看 Hive 默认分隔符文件 Linux 上的文件 以 \001 作为 ...

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

    一.Hive 分号字符 分号是SQL语句结束标记,在HiveQL中也是,可是在HiveQL中,对分号的识别没有那么智慧,比如: select concat(cookie_id,concat(';',' ...

  4. Hive 指定分隔符,将表导出到本地

    hive表的数据源有四种: hbase hdfs 本地 其他hive表 而hive表本身有两种: 内部表和外部表. 而hbase的数据在hive中,可以建立对应的外部表(参看hive和hbase整合) ...

  5. hive默认分隔符引起的日志分割问题

    Hive中的外部表 对于Hive中的外部表来说,因为表是外部的,Hive认为其并不拥有这份数据,删除该表并不会真正删除其中的数据,其中的表描述元信息会被删除掉.   对数据进行分区后,对于管理表,可以 ...

  6. Hive和HBase的区别 转载:https://www.cnblogs.com/guoruibing/articles/9894521.html

    1.Hive和HBase的区别 1)hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce. 2)hive是面向行存储的数据库. 3)Hive本身 ...

  7. hive中分隔符‘\001’到底是什么鬼

    答:hive中的默认的是'\001'是一种特由的分隔符 使用的是ascii编码的值,键盘是打不出来的.

  8. Hive SQL的编译过程[转载自https://tech.meituan.com/hive-sql-to-mapreduce.html]

    https://tech.meituan.com/hive-sql-to-mapreduce.html Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hi ...

  9. hive默认分隔符

    默认分隔符‘\001',对应ascii码SOH: 通过cat -A filename可以查看分隔符:

随机推荐

  1. 洛谷 P1485 火枪打怪

    题目描述 LXL进入到了一片丛林,结果他发现有n只怪物排成一排站在他面前.LXL有一杆火枪能对付这些怪物.他知道从左至右数第i只怪物的血量是mi.现在LXL可以将一些子弹射向某个怪物.LXL可以控制他 ...

  2. Swift3中数组创建方法

    转载自:http://blog.csdn.net/bwf_erg/article/details/70858865 数组是由一组类型相同的元素构成的有序数据集合.数组中的集合元素是有 序的,而且可以重 ...

  3. 配置apache的文件访问路径

    本例中,我们让apache访问"F:/testObject/php"路径: 一.修改http.conf文件配置 访问路径:"apache/conf/httpd.conf& ...

  4. ts中interface与class的区别

    interface -- 接口只声明成员方法,不做实现. class -- 类声明并实现方法. 那么接口有什么用呢?设想如下需求: 要实现一个print函数,它将传入的对象打印出来.在实际实现上,它将 ...

  5. Git Workflow简介

    1. Git WorkFlow介绍 Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践.Git Flow是一套使用Git进行源代码管理时的一套行为 ...

  6. Gson的学习与使用

    Gson介绍: GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串. 特点: a ...

  7. Spring框架入门之Spring简介

    一.Spring简介(由Rod Johnson创建的一个开源框架)        Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿 ...

  8. 【转载】从头编写 asp.net core 2.0 web api 基础框架 (1)

    工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...

  9. IdentityServer(11)- 使用Hybrid Flow并添加API访问控制

    关于Hybrid Flow 和 implicit flow 我在前一篇文章使用OpenID Connect添加用户认证中提到了implicit flow,那么它们是什么呢,它和Hybrid Flow有 ...

  10. typeof关键字的作用

    http://blog.chinaunix.net/uid-28458801-id-4200573.html 一.typeof详解: 前言:    typeof关键字是C语言中的一个新扩展,这个特性在 ...