序列化和反序列化
-
序列化:将数据从内存中的对象转换为可以存储或传输的格式(如文本、二进制等)。
-
反序列化:将存储或传输的数据格式转换回内存中的对象。
Hive使用 SerDe(Serializer/Deserializer)来实现数据的序列化和反序列化。
默认的 SerDe: LazySimpleSerDe
用于处理文本文件(如 CSV、TSV 等),支持简单的分隔符(如逗号、制表符等)
查询
其他SerDe: 比如OrcSerDe
分隔符,转义字符,引用字符
hive
CSV文件
自定义
存储格式
即压缩格式: SequenceFile
、Parquet
、RCFile
和 ORCFile(性价比之王)


测试准备
原始文件(CSV格式的文件:111M)
查看文件大小: 右键>>显示更多选项>>属性
文件位置: 在windows环境下
要把文件加载(load)到hive上,首先需要把文件上传到linux服务器
注意上传文件所在的目录位置>>左侧选择目录位置>> pwd命令查看位置
方法1: MobaXterm软件的上传功能
方法2: 直接拖拽>>左下角会出现上传图标显示正在上传
用 ll 命令查看是否上传成功
建表
CSV文件默认是逗号
加载数据到目标表
查看文本格式文件 在hive里面占的空间
测试压缩比
建表:压缩格式sequencefile
查看文件大小 132M大于未压缩之前的文本文件
原因: 文件经过压缩之后确实变小了,但是压缩文件本身也占内存空间>>文件本身太小,压缩不划算
建表: parquet
查看文件大小
建表: rcfile
查看文件大小 rcfile
建表: orcfile
查看文件大小
测试查询时间
查看执行日志花费的时间