方法一)通过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. 关于Oracle开启自动收集统计信息的SPA测试

    主题:关于Oracle开启自动收集统计信息的SPA测试 环境:Oracle RAC 11.2.0.4(Primary + Standby) 需求:生产Primary库由于历史原因关闭了自动统计信息的收 ...

  2. python之Character string

    1.python字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串,l Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. ...

  3. NoSQL:Linux操作memcached

    一 NoSQL简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付 ...

  4. css loading

    css /*loading*/ .loader { width: 100px; height: 101px; border: 8px solid; border-top-color: hsl(154, ...

  5. SharePoint2013上传列表模板(后缀stp)

    在根网站操作

  6. conda虚拟环境实践

    1.查看本地创建了那些python版本 which python whereis python which主要用来查找可直接执行的命令,可以查找别名.whereis比which的搜索范围大了一些,同时 ...

  7. 常见linux命令用法介绍

    su switch user 用途:用于用户之间的切换 格式: su - USERNAME切换用户后,同时切换到新用户的工作环境中 su USERNAME切换用户后,不改变原用户的工作目录,及其他环境 ...

  8. jq交叉轮播图变种【闪一下黑】

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. AOP及spring AOP的使用

    介绍 AOP是一种概念(思想),并没有设定具体语言的实现. AOP是对oop的一种补充,不是取而代之. 具体思想:定义一个切面,在切面的纵向定义处理方法,处理完成之后,回到横向业务流. 特征 散布于应 ...

  10. vue路由对象($route)参数简介

    路由对象在使用了 vue-router 的应用中,路由对象会被注入每个组件中,赋值为 this.$route ,并且当路由切换时,路由对象会被更新. so , 路由对象暴露了以下属性: 1.$rout ...