Return 使用 sparklyr 的逻辑计划

Return logical plan using sparklyr

我们正在尝试获取 Spark 为给定查询生成的 逻辑 计划(不要与 物理 计划混淆) .根据 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 中只是 returns NULL。我的猜测是 sparklyr 不会检索打印到控制台的内容。有没有办法解决这个问题或使用 sparklyr 检索逻辑计划的其他方法?使用 dplyr::explain([your_sdf]) 很容易获得物理计划,但 return 不是用来创建它的逻辑计划。

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

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