您能用一个实时示例解释一下在哪里使用序列文件和 Parquet 文件吗?
最佳答案
序列文件
序列文件以二进制格式存储数据,其结构与 CSV 类似。与 CSV 一样,序列文件不会将元数据与数据一起存储,因此唯一的模式演变选项是附加新字段。然而,与 CSV 不同的是,序列文件支持 block 压缩。由于读取序列文件的复杂性,它们通常仅用于“运行中”数据,例如 MapReduce 作业序列中使用的中间数据存储。
Parquet 文件
Parquet 文件是另一种列式文件格式,源自 Hadoop 创建者 Doug Cutting 的 Trevni 项目。与 RC 和 ORC 一样,Parquet 具有压缩和查询性能优势,并且写入速度通常比非列文件格式慢。然而,与 RC 和 ORC 文件不同,Parquet serdes 支持有限的架构演变。在 Parquet 中,可以在结构的末尾添加新列。目前,Hive 和 Impala 能够查询新增列,但生态系统中的其他工具(例如 Hadoop Pig)可能面临挑战。 Parquet 受 Cloudera 支持并针对 Cloudera Impala 进行了优化。 Hadoop 生态系统的其余部分正在迅速添加原生 Parquet 支持。
关于 Hive 的 Parquet 文件支持的一点说明...Parquet 列名必须小写,这一点非常重要。如果您的 Parquet 文件包含混合大小写的列名,Hive 将无法读取该列,并将返回对具有空值的列的查询,并且不会记录任何错误。与 Hive 不同,Impala 处理混合大小写的列名称。当你遇到我时,这是一个真正令人困惑的问题
关于hadoop - hive 中的序列文件格式和 parquet 文件格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39646506/