使用Sparklyr返回逻辑计划

时间:2019-11-05 17:11:07

标签: r apache-spark apache-spark-sql sparklyr

我们正在尝试获取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])易于获得物理计划,但是不会返回用于创建物理计划的逻辑计划。

1 个答案:

答案 0 :(得分:0)

看起来您可以通过以下方式获得此信息:

iris_sdf %>% 
  spark_dataframe %>% 
  invoke("queryExecution") %>%
  invoke("toString") %>%
  cat()