使用Parquet文件格式的嵌套数据类型是否有任何性能优势?
AFAIK Parquet文件通常专为查询服务而创建,例如: Athena,因此创建这些的过程可能只是简化了值 - 从而允许更容易查询,更简单的模式,并保留每列的列统计信息。
使用嵌套数据类型可以获得什么好处,例如struct
?
答案 0 :(得分:1)
在镶木地板中保持嵌套结构会产生负面影响。如果在镶木地板文件中有嵌套结构,则问题是spark谓词下推不能正常工作。
因此,即使您在镶木地板数据集中使用少量字段,spark也会加载并实现整个数据集。
以下是关于此问题长期打开的ticket。
答案 1 :(得分:0)
恰恰相反 - Parquet是一种柱状格式,但是从Spark 2.3.0开始,Spark没有正确使用它(参见https://issues.apache.org/jira/browse/SPARK-4502)并且使用struct / nested格式意味着整个列都将被读取并且你不能仅仅阅读所需的数据
已编辑:将评论中的信息移至主要答案