Вернуть логический план используя sparklyr - PullRequest
0 голосов
/ 05 ноября 2019

Мы пытаемся получить логический план (не путать с физическим планом), который Spark генерирует для данного запроса. В соответствии с документами Spark здесь вы можете получить это с помощью команды 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)

Эта команда выполняется, но просто возвращает NULL в RStudio. Я предполагаю, что sparklyr не получает содержимое, которое выводится на консоль. Есть ли способ обойти этот или другой способ получить логический план, используя sparklyr? Физический план легко получить с помощью dplyr::explain([your_sdf]), но он не возвращает логический план, который использовался для его создания.

1 Ответ

0 голосов
/ 06 ноября 2019

Похоже, вы можете получить это через:

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