Hive不同文件的读取与序列化
来源:互联网 发布:java 进程 编辑:程序博客网 时间:2024/06/07 05:29
Hive不同文件的读取对比
stored as textfile
直接查看hdfs
hadoop fs -text
hive> create table test_txt(name string,val string) stored as textfile;
stored as sequencefile
hadoop fs -text
hive> create table test_seq(name string,val string) stored as sequencefile;
stored as rcfile
hive –service rcfilecat path
hive> create table test_rc(name string,val string) stored as rcfile;
stored as inputformat ‘class’自定义
outformat ‘class’
基本步骤:
1、编写自定义类
2、打成jar包
3、添加jar文件,hive> add jar /***/***/***.jar
(当前生效)或者拷贝到hive安装目录的lib目录下,重启客户端(永久生效)。
4、创建表,指定自定义的类
Hive使用SerDe
SerDe是”Serializer”和”Deserializer”的简写。
Hive使用SerDe(和FileFormat)来读、写表的行。
读写数据的顺序如下:
HDFS文件-->InputFileFormat--><key,value>-->Deserializer-->Row对象Row对象-->Serializer--><key,value>-->OutputFileFormat-->HDFS文件
Hive自带的序列化与反序列化
当然我们也可以自己实现自定义的序列化与反序列化
Hive自定义序列化与反序列化步骤
1、实现接口SerDe或者继承AbstractSerDe抽象类
2、重写里面的方法
Demo:
创建表
drop table apachelog;create table apachelog(host string,identity string,user string,time string,request string,status string,size string,referer string,agent string)row format serde 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'with serdeproperties("input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([0-9]*) ([0-9]*) ([^ ]*) ([^ ]*)")stored as textfile;
cat serdedata110.52.250.126 test user - GET 200 1292 refer agent27.19.74.143 test root - GET 200 680 refer agent
加载数据
load data local inpath '/liguodong/hivedata/serdedata' overwrite into table apachelog;
查看内容
select * from apachelog; select host from apachelog;
0 0
- Hive不同文件的读取与序列化
- Hive 不同文件读取对比
- 读取文件时mac、linux与window的不同
- STL文件序列化读取
- 读取注册表hive文件
- java不同的方法读取文件
- Java读取不同编码格式的文件
- java读取文件的不同方法
- python读取不同文件的编码问题
- hive读取与flume写入hdfs文件冲突
- SpringBoot 不同环境读取不同的配置信息文件
- Unity JSON文件的写入(序列化)与读取(反序列化)、以及自定义JSON编辑器
- ubuntu下读取 不同编码格式的文件 读取中文
- android读取不同文件
- 文件的序列化与反列化
- C#序列化读取和存储文件
- boost 序列化 多个条数据,文件读取
- 序列化和读取文件内容
- Linux下输入命令报错:-bash: command not found
- Nginx负载均衡配置实例详解
- cocos2dx 3.2 + vs2012 + win7 动作的施加对象问题
- 第一个Selenium程序-firefox
- wpf如何实现自定义窗口自由拖动
- Hive不同文件的读取与序列化
- maven打包生成可执行jar文件
- 利用FMDB封装工具类
- Kubuntu 15.04 安裝後的必看事項
- volatile
- 安装eclipse maven插件m2eclipse No repository found containing
- Freemarker自定义方法
- 二叉树重建示意图
- hdu1247字典树