【问题标题】:Does spark-sql query plan indicate which table partitions are used?spark-sql 查询计划是否指示使用了哪些表分区?
【发布时间】:2022-12-01 00:56:49
【问题描述】:

通过查看 spark-sql 计划,有没有一种方法可以判断是否正在使用特定表(hive/iceberg)分区?

例如,我们有一个包含 3 个分区的表,假设 A=A_VAL、B=B_VAL、C=C_VAL。通过查看计划,我可以判断是否

  • 分区已完全使用(所有 3 个分区都已使用)
  • 分区仅部分使用(可能仅使用了 1 或 2 个分区,例如使用了分区 A,但现在使用了 B 或 C)

如果 spark-sql 计划不提供此信息,我有什么办法可以获得此信息?

【问题讨论】:

    标签: apache-spark-sql hive iceberg


    【解决方案1】:

    您可以使用以下代码打印(逻辑和物理)计划。

    import pyspark.sql
    
    #create a df using your sql
    df = sqlContext.sql("SELECT field1 AS f1, field2 as f2 from table1")
    
    #use explain to see explain output. Without argument, you will get only physical plan
    df.explain(True)
    == Parsed Logical Plan ==
    ...
    == Analyzed Logical Plan ==
    ...
    == Optimized Logical Plan ==
    ...
    == Physical Plan ==
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 2022-12-16
      • 2010-11-28
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      相关资源
      最近更新 更多