为什么avro或Parquet格式比csv快?

6ie5vjzr  于 2023-05-26  发布在  其他
关注(0)|答案(2)|浏览(181)

我可以读到一些文章,其中我可以读到csv对于大型数据集来说速度较慢且不好。
但我不能理解它是什么与avro/parquet内部,这使得它更快的更大的数据集比csv。

8xiog9wr

8xiog9wr1#

首选数据格式的顺序(在Hadoop上下文中)通常是ORC、Parquet、Avro、SequenceFile,然后是PlainText。
反对CSV的主要原因是它只是一个字符串,这意味着通过根据文件编码(例如UTF8)存储所有字符,数据集会更大;不存在与数据相关联的类型信息或模式,并且在反序列化时将始终解析数据。换句话说,当存储一个布尔字段时,例如,你真的只需要一个二进制位,但在CSV中,你必须存储"true""false"的完整字节或"0""1"的字符串,作为ASCII仍然是整整8位。
另一方面,ORC和Parquet维护类型信息并支持列式下推 predicate ,以实现更快的分析(类似于RDBMS)
Avro是基于行的格式。主要用于网络传输,而不是长期存储。Avro可以很容易地转换成Parquet。由于它仍然是类型化的和二进制的,它将比CSV消耗更少的空间,并且仍然比明文处理得更快。
SequenceFiles是Hadoop的中间地带,但没有得到其他工具的广泛支持。

xa9qqrwz

xa9qqrwz2#

二进制数据总是比相同的文本表示更快。Avro以二进制格式通过线路发送数据,并且也省略了密钥,从而使数据包大小更小。因此,avro适合更大的数据格式。

相关问题