hive: 序列化和反序列化:LazySimpleSerDe; 分隔符,转义字符,引用字符; 存储格式(textfile, SequenceFile、Parquet、RCFile 和ORCFile)

序列化和反序列化

  • 序列化:将数据从内存中的对象转换为可以存储或传输的格式(如文本、二进制等)。

  • 反序列化:将存储或传输的数据格式转换回内存中的对象。

 Hive使用 SerDe(Serializer/Deserializer)来实现数据的序列化和反序列化。

默认的 SerDe:  LazySimpleSerDe

用于处理文本文件(如 CSV、TSV 等),支持简单的分隔符(如逗号、制表符等)

查询

其他SerDe: 比如OrcSerDe

分隔符,转义字符,引用字符

hive 

CSV文件

自定义

存储格式

分类 : 纯文本文件,二进制文件
纯文本文件存储
textfile: 纯文本文件存储格式,不压缩,也是hive的默认存储格式,磁盘开销大,数据解析开销大
二进制文件存储

即压缩格式: SequenceFileParquetRCFile 和 ORCFile(性价比之王)

压缩格式的性能指标: 压缩比, 数据查询时间
压缩比

测试准备

原始文件(CSV格式的文件:111M)

查看文件大小: 右键>>显示更多选项>>属性

文件位置: 在windows环境下

要把文件加载(load)到hive上,首先需要把文件上传到linux服务器

注意上传文件所在的目录位置>>左侧选择目录位置>> pwd命令查看位置

方法1:  MobaXterm软件的上传功能

方法2: 直接拖拽>>左下角会出现上传图标显示正在上传

用 ll 命令查看是否上传成功

建表

CSV文件默认是逗号

加载数据到目标表

查看文本格式文件 在hive里面占的空间

测试压缩比

建表:压缩格式sequencefile

查看文件大小 132M大于未压缩之前的文本文件

原因: 文件经过压缩之后确实变小了,但是压缩文件本身也占内存空间>>文件本身太小,压缩不划算

建表: parquet

查看文件大小

建表: rcfile

查看文件大小  rcfile

建表: orcfile

查看文件大小

测试查询时间

查看执行日志花费的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值