From aecae969e40b0b13667f13a6946798eaf3317fcf Mon Sep 17 00:00:00 2001 From: Felix Cheung Date: Tue, 20 Dec 2016 18:29:55 -0800 Subject: [PATCH 1/2] uiWebUrl --- R/pkg/NAMESPACE | 1 + R/pkg/R/sparkR.R | 24 +++++++++++++++++++++++ R/pkg/inst/tests/testthat/test_sparkSQL.R | 5 ++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/R/pkg/NAMESPACE b/R/pkg/NAMESPACE index 377f9429ae5c1..c3ec3f4fb1bae 100644 --- a/R/pkg/NAMESPACE +++ b/R/pkg/NAMESPACE @@ -16,6 +16,7 @@ export("sparkR.stop") export("sparkR.session.stop") export("sparkR.conf") export("sparkR.version") +export("sparkR.uiWebUrl") export("print.jobj") export("sparkR.newJObject") diff --git a/R/pkg/R/sparkR.R b/R/pkg/R/sparkR.R index c57cc8f285613..e9d42c1e0a7dc 100644 --- a/R/pkg/R/sparkR.R +++ b/R/pkg/R/sparkR.R @@ -410,6 +410,30 @@ sparkR.session <- function( sparkSession } +#' Get the URL of the SparkUI instance for the current active SparkSession +#' +#' Get the URL of the SparkUI instance for the current active SparkSession. +#' +#' @return the SparkUI URL, or NA if it is disabled, or not started. +#' @rdname sparkR.uiWebUrl +#' @name sparkR.uiWebUrl +#' @export +#' @examples +#'\dontrun{ +#' sparkR.session() +#' url <- sparkR.uiWebUrl() +#' } +#' @note sparkR.uiWebUrl since 2.2.0 +sparkR.uiWebUrl <- function() { + sc <- sparkR.callJMethod(getSparkContext(), "sc") + u <- callJMethod(sc, "uiWebUrl") + if (callJMethod(u, "isDefined")) { + callJMethod(u, "get") + } else { + NA + } +} + #' Assigns a group ID to all the jobs started by this thread until the group ID is set to a #' different value or cleared. #' diff --git a/R/pkg/inst/tests/testthat/test_sparkSQL.R b/R/pkg/inst/tests/testthat/test_sparkSQL.R index 2e95737368897..4490f31cd83e1 100644 --- a/R/pkg/inst/tests/testthat/test_sparkSQL.R +++ b/R/pkg/inst/tests/testthat/test_sparkSQL.R @@ -2613,7 +2613,7 @@ test_that("randomSplit", { expect_true(all(sapply(abs(counts / num - weights / sum(weights)), function(e) { e < 0.05 }))) }) -test_that("Setting and getting config on SparkSession", { +test_that("Setting and getting config on SparkSession, sparkR.conf(), sparkR.uiWebUrl()", { # first, set it to a random but known value conf <- callJMethod(sparkSession, "conf") property <- paste0("spark.testing.", as.character(runif(1))) @@ -2637,6 +2637,9 @@ test_that("Setting and getting config on SparkSession", { expect_equal(appNameValue, "sparkSession test") expect_equal(testValue, value) expect_error(sparkR.conf("completely.dummy"), "Config 'completely.dummy' is not set") + + url <- sparkR.uiWebUrl() + expect_equal(substr(url, 1, 7), "http://") }) test_that("enableHiveSupport on SparkSession", { From 865562244fdf23513cb01296fd3eb6faa4e284b7 Mon Sep 17 00:00:00 2001 From: Felix Cheung Date: Sun, 8 Jan 2017 16:27:15 -0800 Subject: [PATCH 2/2] update since --- R/pkg/R/sparkR.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/pkg/R/sparkR.R b/R/pkg/R/sparkR.R index e9d42c1e0a7dc..870e76b7292fa 100644 --- a/R/pkg/R/sparkR.R +++ b/R/pkg/R/sparkR.R @@ -423,7 +423,7 @@ sparkR.session <- function( #' sparkR.session() #' url <- sparkR.uiWebUrl() #' } -#' @note sparkR.uiWebUrl since 2.2.0 +#' @note sparkR.uiWebUrl since 2.1.1 sparkR.uiWebUrl <- function() { sc <- sparkR.callJMethod(getSparkContext(), "sc") u <- callJMethod(sc, "uiWebUrl")