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

kykooo 回答:使用Sparklyr返回逻辑计划

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

iris_sdf %>% 
  spark_dataframe %>% 
  invoke("queryExecution") %>%
  invoke("toString") %>%
  cat()
本文链接:https://www.f2er.com/3157705.html

大家都在问