首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Spark 3中查看推送和分区筛选器

如何在Spark 3中查看推送和分区筛选器
EN

Stack Overflow用户
提问于 2020-04-19 05:12:23
回答 1查看 87关注 0票数 0

如何查看Spark 3 (3.0.0-preview2)中的分区过滤器和推送过滤器?

在Spark 2中,explain方法输出的细节如下:

代码语言:javascript
复制
== Physical Plan ==
Project [first_name#12, last_name#13, country#14]
+- Filter (((isnotnull(country#14) && isnotnull(first_name#12)) && (country#14 = Russia)) && StartsWith(first_name#12, M))
   +- FileScan csv [first_name#12,last_name#13,country#14]
        Batched: false,
        Format: CSV,
        Location: InMemoryFileIndex[file:/Users/powers/Documents/tmp/blog_data/people.csv],
        PartitionFilters: [],
        PushedFilters: [IsNotNull(country), IsNotNull(first_name), EqualTo(country,Russia), StringStartsWith(first_name,M)],
        ReadSchema: struct

这可以让您轻松地识别PartitionFilters和PushedFilters。

在Spark3中,解释要少得多,即使设置了extended参数:

代码语言:javascript
复制
val path = new java.io.File("./src/test/resources/person_data.csv").getCanonicalPath
val df = spark.read.option("header", "true").csv(path)
df
  .filter(col("person_country") === "Cuba")
  .explain("extended")

下面是输出:

代码语言:javascript
复制
== Parsed Logical Plan ==
'Filter ('person_country = Cuba)
+- RelationV2[person_name#115, person_country#116] csv file:/Users/matthewpowers/Documents/code/my_apps/mungingdata/spark3/src/test/resources/person_data.csv

== Analyzed Logical Plan ==Only 18s
person_name: string, person_country: string
Filter (person_country#116 = Cuba)
+- RelationV2[person_name#115, person_country#116] csv file:/Users/matthewpowers/Documents/code/my_apps/mungingdata/spark3/src/test/resources/person_data.csv

== Optimized Logical Plan ==
Filter (isnotnull(person_country#116) AND (person_country#116 = Cuba))
+- RelationV2[person_name#115, person_country#116] csv file:/Users/matthewpowers/Documents/code/my_apps/mungingdata/spark3/src/test/resources/person_data.csv

== Physical Plan ==
*(1) Project [person_name#115, person_country#116]
+- *(1) Filter (isnotnull(person_country#116) AND (person_country#116 = Cuba))
   +- BatchScan[person_name#115, person_country#116] CSVScan Location: InMemoryFileIndex[file:/Users/matthewpowers/Documents/code/my_apps/mungingdata/spark3/src/test/re..., ReadSchema: struct<person_name:string,person_country:string>

有没有办法查看Spark 3中的分区过滤器和推送过滤器?

EN

回答 1

Stack Overflow用户

发布于 2020-04-19 17:55:37

这看起来像是一个在四月底修复的bug。谓词下推的JIRA是SPARK-30475,分区下推的JIRA是SPARK-30428

你能检查一下你的Spark版本中是否包含这个补丁吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61296310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档