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()
我们正在尝试获取 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()