我有一些以日期为分区存储的Parquet文件,存储在以下目录中:
/activity
/date=20180802
我使用的是Spark 2.2版本,有400多个分区。我的理解是谓词下推应该可以让我运行像下面这样的查询,并快速获得结果。
spark.read.parquet(".../activity")
.filter($"date" === "20180802" && $"id" === "58ff800af2")
.show()
然而,上面的查询花费了大约90秒的时间,而下面的查询仅需要大约5秒钟的时间。我是做错了什么还是这是正常行为?
spark.read.parquet(".../activity/date=20180802")
.filter($"id" === "58ff800af2")
.show()