众所周知,Apache Spark支持许多种不同的数据格式,其中包括:无处不在的CSV格式、对于Web友好的JSON格式、以及常被用于大数据分析的Apache Parquet和Apache Avro。
更多精彩内容 点我学
在本文中,我们将通过Apache Spark,来向您介绍上述四种大数据文件格式的各种属性,及其优缺点比较。
1、CSV
CSV(Comma-Separated Values,逗号分隔值)文件,通常被用于在使用纯文本的系统之间,交换表格类型的数据。CSV是一种基于行的文件格式。也就是说,此类文件中的每一行都对应到数据表中的具体某一行。通常,CSV文件里包含有一个标题行,该标题行提供了数据的列名。如果没有标题行的话,该文件将被视为已部分完成了结构化工作。
单个CSV文件往往无法显示层次化的结构、或数据关系。而具体的数据连接关系往往需要通常多个CSV文件进行组织。各种外键(Foreign key)一般被存储在一个或多个文件的多个列中。不过这些文件之间的链接并非由其格式本身来表示。此外,由于并未完全标准化,因此在CSV格式文件中,您可以使用逗号以外的界定符,例如:制表符(tabs)或空格。
CSV文件的另一个特性是:只有处于未压缩的原始文件状态、或是运用诸如bzip2(https://en.wikipedia.org/wiki/Bzip2)或lzo(https://ru.wikipedia.org/wiki/LZO)之类的解压缩工具时,CSV文件才能够被拆分(注意:lzo需要进行索引之后,方可执行拆分)。
优点:
CSV易于人工阅读,也易于手动编辑。
CS