使用sparklyr返回逻辑计划

问题描述 投票:0回答:1

我们正在尝试获取Spark为给定查询生成的逻辑计划(不要与physical计划混淆)。根据Spark文档here,您应该可以使用scala命令检索此信息:

df.explain(true)

或在带有示例代码的sparklyr中:

spark_version <- "2.4.3"
sc <- spark_connect(master = "local", version = spark_version)
iris_sdf <- copy_to(sc, iris)

iris_sdf %>% 
  spark_dataframe %>% 
  invoke("explain", T)

此命令运行,但仅在RStudio中返回NULL。我的猜测是sparklyr不会检索打印到控制台的内容。有没有其他方法可以使用sparklyr检索逻辑计划?使用dplyr::explain([your_sdf])容易获得物理计划,但不会返回用于创建物理计划的逻辑计划。

r apache-spark apache-spark-sql sparklyr
1个回答
0
投票

看起来您可以通过以下方式获得它:

iris_sdf %>% 
  spark_dataframe %>% 
  invoke("queryExecution") %>%
  invoke("toString") %>%
  cat()
© www.soinside.com 2019 - 2024. All rights reserved.