use*_*850 0 avro apache-spark parquet
既然Spark 2.4内置了对Avro格式的支持,我正在考虑更改我的数据湖中某些数据集的格式-通常将这些数据集查询/合并为整个行,而不是特定的列聚合-从Parquet更改为阿夫罗
但是,数据之上的大部分工作都是通过Spark完成的,据我所知,Spark的内存中缓存和计算是在列格式的数据上完成的。Parquet是否在这方面提供性能提升,而Avro会带来某种形式的数据“转换”损失?在这方面,我还应注意其他哪些注意事项?
两种格式都有不同的约束,但是具有诸如带模式的强类型和通用的二进制编码之类的东西。它的基本形式归结为这种区别:
由于已经将您的数据和接收过程调整为写入Parquet文件,因此只要数据接收(等待时间)对您来说没有问题,最好还是保留Parquet。
实际上,典型的用法是将实木复合地板和Avro混合使用。最新的最新到达的数据存储为Avro文件,因为这使数据立即可用于数据湖。例如,每天将更多历史数据转换为Parquet文件,因为它们较小且加载效率最高,但只能成批写入。在处理这些数据时,您将两者作为两个表的联合加载到Spark中。因此,您可以受益于Parquet的高效读取以及Avro的即时数据可用性。这种模式通常被Netflix 发起的Uber的Hudi或Apache Iceberg(孵化)等表格格式隐藏。
| 归档时间: |
|
| 查看次数: |
1903 次 |
| 最近记录: |