【发布时间】:2017-06-23 11:03:37
【问题描述】:
我在 HDFS 中有两组 Parquet 格式的相同数据。
一组在col1 上排序,另一组未排序。 sorted_table 大约 127 GB,unsorted_table 大约 117 GB。
大小在这里无关紧要。
我使用 Spark SQL 运行了以下两个查询:
select col1, count(*) from sorted_table where col1 = someInt group by col1
select col1, count(*) from unsorted_table where col1 = someInt group by col1
我在 spark UI 上分析了这些查询,我发现 sorted_table 上的查询仅读取 127 MB 的数据,而 unsorted_table 上的查询读取 35 GB 的数据来计算计数。
所以我的问题是:
- Spark 如何通过读取更少的数据来计算计数?
- 为什么 sorted_table 上的作业与上的作业相比读取的数据更少 unsorted_table?
【问题讨论】:
标签: hadoop apache-spark parquet