Hadoop 文件格式

CSV

CSV(Comma-Separated Value 逗号分隔值)

特性

  • 文本文件
  • 面向行
  • 记录被分隔符分隔为字段
  • 记录有着相同的字段序列

场景

易于解析,适用于从 Sqoop 导入到 HDFS 或从 HDFS 导出到数据库的文件格式

提示

  1. 文本编码
  2. 保证记录中的字段不包含分隔符(使用不常用的字符作为分隔符或者替换字段中的分隔符)
  3. 使用 Apache Commons Lang 3 项目的 StringUtils.splitPreserveAllTokens 替换 Java String 自带的 string.split 解析 CSV

JSON

JSON(JavaScript Object Notation JavaScript 对象标记)

特性

  • 文本文件
  • 面向行

场景

可读性好,适用于调试

Avro

Apache Avro

特性

  • 序列化框架
  • 自描述 Schema
  • 面向行
  • 可分片
  • 支持内部压缩

场景

空间利用率高,适用于归档数据

Parquet

Apache Parquet

特性

  • 自描述 Schema
  • 面向列
  • 可分片
  • 支持内部压缩

场景

列式存储,适用于结构化查询