【发布时间】:2020-10-17 19:25:31
【问题描述】:
我正在运行 spark 作业 (scala) 将列转换为上列并过滤其值
val udfExampleDF = spark.read.parquet("a.parquet")
udfExampleDF.filter(upper(col("device_type"))==="PHONE").select(col("device_type")).show()
我看到这个过滤器没有被按下。这是物理计划的样子
== Physical Plan ==
CollectLimit 21
+- *(1) Filter (upper(device_type#138) = PHONE)
+- *(1) FileScan parquet [device_type#138] Batched: true, Format: Parquet, Location: InMemoryFileIndex[a.parquet, PartitionFilters: [], PushedFilters: [], ReadSchema: struct<orig_device_type:string>
但是,如果我只过滤没有上层,过滤器会被推下。
知道为什么会这样。我假设这些过滤器在所有情况下都会被下推。感谢您的帮助。
【问题讨论】:
标签: apache-spark