Apache spark 带有合并拼花文件的Impala桌子的性能问题

Apache spark 带有合并拼花文件的Impala桌子的性能问题,apache-spark,hadoop,parquet,impala,pyarrow,Apache Spark,Hadoop,Parquet,Impala,Pyarrow,在这里,我使用python实用程序为单个数据集使用Pyarrow库创建多个拼花地板文件,因为一天内数据集的大小非常大。这里的拼花文件包含每个分割拼花文件中的10K拼花行组,最后我们将分割文件合并为一个文件,以创建一个大的单个拼花文件。在这里,我创建了两个Impala表,其中包含一个合并文件和多个拆分文件 当分割文件数据加载到Impala表格中并试图查询它时,结果在几秒钟内就会更快,但当Impala表格在单个合并拼花文件上创建时。与前面提到的分割文件Impala表相比,它将产生性能问题。当我试图计

在这里,我使用python实用程序为单个数据集使用Pyarrow库创建多个拼花地板文件,因为一天内数据集的大小非常大。这里的拼花文件包含每个分割拼花文件中的10K拼花行组,最后我们将分割文件合并为一个文件,以创建一个大的单个拼花文件。在这里,我创建了两个Impala表,其中包含一个合并文件和多个拆分文件

当分割文件数据加载到Impala表格中并试图查询它时,结果在几秒钟内就会更快,但当Impala表格在单个合并拼花文件上创建时。与前面提到的分割文件Impala表相比,它将产生性能问题。当我试图计算黑斑羚表的统计数据时,我无法识别这两个表之间的差异


任何想法,为什么多分割拼花文件Impala表和单个合并分割文件Impala表之间的性能行为存在差异。

历史上,良好的拼花性能与大型拼花文件相关。然而,在现实中,好的性能不是由大文件产生的,而是由大行组产生的(高达HDFS块大小)

在不合并行组的情况下一个接一个地放置行组不会显著改变Spark性能,但会使黑斑羚的速度慢很多

本主题中的一些JIRA-s:

您可以不合并小拼花文件,而是将新数据放在一个单独的表中,该表的格式可能较低(textfile、Avro或许多小拼花文件),然后使用Hive、Spark或Impala查询该表的内容,并将其批量插入生产表中。这将创建具有有效行组大小的适当大小的拼花文件