Hive 导入CSV文件
SerDe 介绍
Hive 使用如下FileFormat 类读写 HDFS files:
TextInputFormat/HiveIgnoreKeyTextOutputFormat: 读写普通HDFS文本文件.
SequenceFileInputFormat/SequenceFileOutputFormat: 读写SequenceFile格式的HDFS文件.
Hive 使用如下SerDe 类(反)序列化数据:
MetadataTypedColumnsetSerDe: 读写csv、tsv文件和默认格式文件
ThriftSerDe: 读写Thrift 序列化后的对象.
DynamicSerDe: 读写Thrift序列化后的对象, 不过不需要解读schema中的ddl.
hive通过java写入csv文件:http://blog.csdn.net/zengmingen/article/details/52637483
CSV Serde
CSV格式的文件也称为逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号。在本文中的CSV格式的数据就不是简单的逗号分割的),其文件以纯文本形式存储表格数据(数字和文本)。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
默认的分隔符:
DEFAULT_ESCAPE_CHARACTER \
DEFAULT_QUOTE_CHARACTER " //如果没有,则不需要指定
DEFAULT_SEPARATOR ,
建表语句:
CREATE TABLE csv_table(a string, b string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar" = "\t", "quoteChar" = "'", "escapeChar" = "\\") STORED AS TEXTFILE;
separatorChar:分隔符
quoteChar:引号符
escapeChar:转意符
实验操作
准备数据
从数据库导出。
文件1:user1.csv
文件2:user2.csv
文件3:user3.csv
创建表
hive (zmgdb)> create table csv_t1(a string,b string,c string)
> row format serde
> 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
> with
> SERDEPROPERTIES
> ("separatorChar"=",")
> STORED AS TEXTFILE;
引号符“
hive (zmgdb)> create table csv_t2(a string,b string,c string)
> row format serde
> 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
> with
> SERDEPROPERTIES
> ("separatorChar"=",","quotechar"="\"")
> STORED AS TEXTFILE;
OK
Time taken: 0.072 seconds
转义符\
hive (zmgdb)> create table csv_t3(a string,b string,c string)
> row format serde
> 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
> with
> SERDEPROPERTIES
> ("separatorChar"=",","escapeChar" = "\\" )
> STORED AS TEXTFILE;
OK
Time taken: 0.088 seconds
导入
hive (zmgdb)> load data local inpath '/data/user1.csv' into table csv_t1;
Loading data to table zmgdb.csv_t1
OK
Time taken: 0.536 seconds
hive (zmgdb)> load data local inpath '/data/user2.csv' into table csv_t2;
Loading data to table zmgdb.csv_t2
OK
Time taken: 0.181 seconds
hive (zmgdb)> load data local inpath '/data/user3.csv' into table csv_t3;
Loading data to table zmgdb.csv_t3
查询
hive (zmgdb)> select * from csv_t1;
OK
csv_t1.a csv_t1.b csv_t1.c
% root Y
hello110 root Y
127.0.0.1 root Y
::1 root Y
localhost hive N
% hive Y
Time taken: 0.74 seconds, Fetched: 6 row(s)
hive (zmgdb)> select * from csv_t2;
OK
csv_t2.a csv_t2.b csv_t2.c
% root Y
hello110 root Y
127.0.0.1 root Y
::1 root Y
localhost hive N
% hive Y
Time taken: 0.068 seconds, Fetched: 6 row(s)
hive (zmgdb)> select * from csv_t3;
OK
csv_t3.a csv_t3.b csv_t3.c
% root Y
hello110 'root' Y
127.0.0.1 NULL NULL
::1 root Y
localhost hive N
% hive Y
Time taken: 0.07 seconds, Fetched: 6 row(s)
补充
如果文件内容的引号符,分隔符,转义符,不是默认的,也不是建表语句指定的,则原样导入。
文件user4.csv:引号符是中文单引号
导入csv_t1表
hive (zmgdb)> load data local inpath '/data/user4.csv' into table csv_t1;
Loading data to table zmgdb.csv_t1
OK
Time taken: 0.191 seconds
hive (zmgdb)> select * from csv_t1;
OK
csv_t1.a csv_t1.b csv_t1.c
% root Y
hello110 root Y
127.0.0.1 root Y
::1 root Y
localhost hive N
% hive Y
‘111111’ ‘root’ ‘Y’
‘112222’ ‘r2222’ ‘Y’
Time taken: 0.06 seconds, Fetched: 14 row(s)
hive (zmgdb)>
Hive 导入CSV文件相关推荐
- Hive导入csv文件
现有文件为csv格式,需要导入hive中,设csv内容如下 1001,zs,23 1002,lis,24 首先创建表 create table if not exists csv2(uid int,u ...
- 向oracle中导入*.csv文件
向oracle中导入*.csv文件 1.什么是*.csv,如何得到? 里面存放的是数据表.每行代表数据库表格的一行, 每行中,每两个数据中间由逗号","分割. *.csv可以通过& ...
- Oracle数据库表导出和导入csv文件操作
Oracle数据库表导出和导入csv文件操作 数据库是Oracle 9i 1.导出csv文件 这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中 ...
- python导入csv文件-jupyter 导入csv文件方式
先将准备的文件上传到自己的jupyter工作空间 import numpy as np import pandas as pd housing = pd.read_csv('housing.csv') ...
- python导入csv文件-python如何导入csv文件格式
1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...
- python导入csv文件-python如何导入csv
1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...
- python如何将utf-8编码文件改为ansi编码文件_Excel导入CSV文件乱码?两个小方法让文件正常显示...
最近网友抱怨,收到别人发来的数据表,打开后长这样: CSV再EXCEL中显示为乱码 除了数字,其他是啥玩意儿 完全乱码... (乱码!乱马!乱吗?乱!) 但是当使用记事本打开,检查确认是否文件有问题时 ...
- excel导入csv文件_如何将包含以0开头的列的CSV文件导入Excel
excel导入csv文件 Microsoft Excel will automatically convert data columns into the format that it thinks ...
最新文章
- Spring - @Conditional全解
- ios开发两个简单的错误提示和原因
- C语言学习之输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
- 程序员:最绝望的面试代码写了4个小时,就是不运行!最终收到15K的offer
- 支持M1芯片mac 达芬奇17中文版(详细安装教程) DaVinci Resolve Studio 17.3.1b5
- synchronized 解决死锁的问题 轉貼
- android 输出字节数组,Android蓝牙通信字节数组的数据类型转换 求教!
- 无聊闲做,从使用PHP数组实现约瑟夫环问题谈性能
- 第1章 Ext JS介绍与快速入门[1/4]
- 关于代码审查,那些你不曾关注的细节
- JAVA 线程池的分析和使用
- 《JAVA语言程序设计与数据结构》(基础篇)原书第11版 第一章(答案)
- zedgraph显示最小刻度_ZedGraph显示多条实时曲线
- 手机配置host的替代方案
- python课本图片_python爬虫当当网python书籍图片
- linux中批量删除用户,Linux shell批量删除用户
- informix 访问mysql_C语言访问INFORMIX数据库
- KVC原理分析及应用
- 【模电】0014 运放自激振荡和消除(补偿)
- Windows11下如何免安装配置MySQL服务(mysql5.6.50.zip)? | 超级详细,建议收藏
热门文章
- linux故障排查书籍,Linux系统故障排查和修复技巧.docx
- jsp springmvc 视图解析器_Java面试题整理——SpringMVC
- 《软件项目管理(第二版)》期末考试试题总结/复习资料
- C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。
- C语言爆炸干货,小白你还不来看看嘛!
- java中解决组件重叠的问题(例如鼠标移动组件时)
- c语言输入字符时控制符%c前加空格的原因解释
- inur new.php id,Cmsez(随易)全站系统 0day
- go语言 doc转换html,go语言使用wkhtmltopdf工具将html转成pdf
- tensorboard ckpt pb 模型的输出节点_算法工程化系列——模型固化