diff --git a/R/pkg/R/DataFrame.R b/R/pkg/R/DataFrame.R index 09e831814b893..15b3ce2935427 100644 --- a/R/pkg/R/DataFrame.R +++ b/R/pkg/R/DataFrame.R @@ -431,7 +431,7 @@ setMethod("coltypes", if (is.null(type)) { specialtype <- specialtypeshandle(x) if (is.null(specialtype)) { - stop(paste("Unsupported data type: ", x)) + stop("Unsupported data type: ", x) } type <- PRIMITIVE_TYPES[[specialtype]] } @@ -829,8 +829,8 @@ setMethod("repartitionByRange", jcol <- lapply(cols, function(c) { c@jc }) sdf <- callJMethod(x@sdf, "repartitionByRange", numToInt(numPartitions), jcol) } else { - stop(paste("numPartitions and col must be numeric and Column; however, got", - class(numPartitions), "and", class(col))) + stop("numPartitions and col must be numeric and Column; however, got ", + class(numPartitions), " and ", class(col)) } } else if (!is.null(col)) { # only columns are specified @@ -839,7 +839,7 @@ setMethod("repartitionByRange", jcol <- lapply(cols, function(c) { c@jc }) sdf <- callJMethod(x@sdf, "repartitionByRange", jcol) } else { - stop(paste("col must be Column; however, got", class(col))) + stop("col must be Column; however, got ", class(col)) } } else if (!is.null(numPartitions)) { # only numPartitions is specified @@ -1068,10 +1068,10 @@ setMethod("sample", signature(x = "SparkDataFrame"), function(x, withReplacement = FALSE, fraction, seed) { if (!is.numeric(fraction)) { - stop(paste("fraction must be numeric; however, got", class(fraction))) + stop("fraction must be numeric; however, got ", class(fraction)) } if (!is.logical(withReplacement)) { - stop(paste("withReplacement must be logical; however, got", class(withReplacement))) + stop("withReplacement must be logical; however, got ", class(withReplacement)) } if (!missing(seed)) { @@ -1211,11 +1211,10 @@ setMethod("collect", checkSchemaInArrow(schema(x)) TRUE }, error = function(e) { - warning(paste0("The conversion from Spark DataFrame to R DataFrame was attempted ", - "with Arrow optimization because ", - "'spark.sql.execution.arrow.sparkr.enabled' is set to true; ", - "however, failed, attempting non-optimization. Reason: ", - e)) + warning("The conversion from Spark DataFrame to R DataFrame was attempted ", + "with Arrow optimization because ", + "'spark.sql.execution.arrow.sparkr.enabled' is set to true; ", + "however, failed, attempting non-optimization. Reason: ", e) FALSE }) } @@ -1508,8 +1507,8 @@ dapplyInternal <- function(x, func, schema) { if (inherits(schema, "structType")) { checkSchemaInArrow(schema) } else if (is.null(schema)) { - stop(paste0("Arrow optimization does not support 'dapplyCollect' yet. Please disable ", - "Arrow optimization or use 'collect' and 'dapply' APIs instead.")) + stop("Arrow optimization does not support 'dapplyCollect' yet. Please disable ", + "Arrow optimization or use 'collect' and 'dapply' APIs instead.") } else { stop("'schema' should be DDL-formatted string or structType.") } @@ -2012,8 +2011,8 @@ setMethod("[", signature(x = "SparkDataFrame"), x } else { if (class(i) != "Column") { - stop(paste0("Expressions other than filtering predicates are not supported ", - "in the first parameter of extract operator [ or subset() method.")) + stop("Expressions other than filtering predicates are not supported ", + "in the first parameter of extract operator [ or subset() method.") } filter(x, i) } @@ -2604,18 +2603,17 @@ setMethod("join", if (is.null(joinType)) { sdf <- callJMethod(x@sdf, "join", y@sdf, joinExpr@jc) } else { - if (joinType %in% c("inner", "cross", + validJoinTypes <- c("inner", "cross", "outer", "full", "fullouter", "full_outer", "left", "leftouter", "left_outer", "right", "rightouter", "right_outer", - "semi", "left_semi", "leftsemi", "anti", "left_anti", "leftanti")) { + "semi", "leftsemi", "left_semi", "anti", "leftanti", "left_anti") + if (joinType %in% validJoinTypes) { joinType <- gsub("_", "", joinType, fixed = TRUE) sdf <- callJMethod(x@sdf, "join", y@sdf, joinExpr@jc, joinType) } else { - stop(paste("joinType must be one of the following types:", - "'inner', 'cross', 'outer', 'full', 'fullouter', 'full_outer',", - "'left', 'leftouter', 'left_outer', 'right', 'rightouter', 'right_outer',", - "'semi', 'leftsemi', 'left_semi', 'anti', 'leftanti' or 'left_anti'.")) + stop("joinType must be one of the following types: ", + "'", paste(validJoinTypes, collapse = "', '"), "'") } } } diff --git a/R/pkg/R/RDD.R b/R/pkg/R/RDD.R index 7ee725d90d550..7a1d157bb8a36 100644 --- a/R/pkg/R/RDD.R +++ b/R/pkg/R/RDD.R @@ -947,7 +947,7 @@ setMethod("takeSample", signature(x = "RDD", withReplacement = "logical", MAXINT <- .Machine$integer.max if (num < 0) - stop(paste("Negative number of elements requested")) + stop("Negative number of elements requested") if (initialCount > MAXINT - 1) { maxSelected <- MAXINT - 1 diff --git a/R/pkg/R/SQLContext.R b/R/pkg/R/SQLContext.R index 1ef2641742704..c0ac68332ec41 100644 --- a/R/pkg/R/SQLContext.R +++ b/R/pkg/R/SQLContext.R @@ -34,7 +34,7 @@ getInternalType <- function(x) { Date = "date", POSIXlt = "timestamp", POSIXct = "timestamp", - stop(paste("Unsupported type for SparkDataFrame:", class(x)))) + stop("Unsupported type for SparkDataFrame: ", class(x))) } #' return the SparkSession @@ -112,9 +112,9 @@ sparkR.conf <- function(key, defaultValue) { error = function(e) { estr <- as.character(e) if (any(grepl("java.util.NoSuchElementException", estr, fixed = TRUE))) { - stop(paste0("Config '", key, "' is not set")) + stop("Config '", key, "' is not set") } else { - stop(paste0("Unknown error: ", estr)) + stop("Unknown error: ", estr) } }) } else { @@ -208,7 +208,7 @@ getSchema <- function(schema, firstRow = NULL, rdd = NULL) { names <- lapply(names, function(n) { nn <- gsub(".", "_", n, fixed = TRUE) if (nn != n) { - warning(paste("Use", nn, "instead of", n, "as column name")) + warning("Use ", nn, " instead of ", n, " as column name") } nn }) @@ -290,10 +290,9 @@ createDataFrame <- function(data, schema = NULL, samplingRatio = 1.0, TRUE }, error = function(e) { - warning(paste0("createDataFrame attempted Arrow optimization because ", - "'spark.sql.execution.arrow.sparkr.enabled' is set to true; however, ", - "failed, attempting non-optimization. Reason: ", - e)) + warning("createDataFrame attempted Arrow optimization because ", + "'spark.sql.execution.arrow.sparkr.enabled' is set to true; however, ", + "failed, attempting non-optimization. Reason: ", e) FALSE }) } @@ -326,7 +325,7 @@ createDataFrame <- function(data, schema = NULL, samplingRatio = 1.0, } else if (inherits(data, "RDD")) { rdd <- data } else { - stop(paste("unexpected type:", class(data))) + stop("unexpected type: ", class(data)) } schema <- getSchema(schema, firstRow, rdd) diff --git a/R/pkg/R/client.R b/R/pkg/R/client.R index 872b21443eaad..797a5c7da1549 100644 --- a/R/pkg/R/client.R +++ b/R/pkg/R/client.R @@ -102,10 +102,9 @@ checkJavaVersion <- function() { javaVersionNum <- as.integer(versions[1]) } if (javaVersionNum < minJavaVersion || javaVersionNum >= maxJavaVersion) { - stop(paste0("Java version, greater than or equal to ", minJavaVersion, - " and less than ", maxJavaVersion, - ", is required for this package; found version: ", - javaVersionStr)) + stop("Java version, greater than or equal to ", minJavaVersion, + " and less than ", maxJavaVersion, ", is required for this ", + "package; found version: ", javaVersionStr) } return(javaVersionNum) } diff --git a/R/pkg/R/context.R b/R/pkg/R/context.R index d96a287f818a2..e3c9d9f8793d6 100644 --- a/R/pkg/R/context.R +++ b/R/pkg/R/context.R @@ -144,13 +144,13 @@ parallelize <- function(sc, coll, numSlices = 1) { if ((!is.list(coll) && !is.vector(coll)) || is.data.frame(coll)) { # nolint end if (is.data.frame(coll)) { - message(paste("context.R: A data frame is parallelized by columns.")) + message("context.R: A data frame is parallelized by columns.") } else { if (is.matrix(coll)) { - message(paste("context.R: A matrix is parallelized by elements.")) + message("context.R: A matrix is parallelized by elements.") } else { - message(paste("context.R: parallelize() currently only supports lists and vectors.", - "Calling as.list() to coerce coll into a list.")) + message("context.R: parallelize() currently only supports lists and vectors. ", + "Calling as.list() to coerce coll into a list.") } } coll <- as.list(coll) diff --git a/R/pkg/R/deserialize.R b/R/pkg/R/deserialize.R index ca4a6e342d772..3e7c456bd548d 100644 --- a/R/pkg/R/deserialize.R +++ b/R/pkg/R/deserialize.R @@ -57,7 +57,7 @@ readTypedObject <- function(con, type) { "s" = readStruct(con), "n" = NULL, "j" = getJobj(readString(con)), - stop(paste("Unsupported type for deserialization", type))) + stop("Unsupported type for deserialization ", type)) } readStringData <- function(con, len) { diff --git a/R/pkg/R/group.R b/R/pkg/R/group.R index 2b7995e1e37f6..99d62240a3b2a 100644 --- a/R/pkg/R/group.R +++ b/R/pkg/R/group.R @@ -234,8 +234,8 @@ gapplyInternal <- function(x, func, schema) { if (inherits(schema, "structType")) { checkSchemaInArrow(schema) } else if (is.null(schema)) { - stop(paste0("Arrow optimization does not support 'gapplyCollect' yet. Please disable ", - "Arrow optimization or use 'collect' and 'gapply' APIs instead.")) + stop("Arrow optimization does not support 'gapplyCollect' yet. Please disable ", + "Arrow optimization or use 'collect' and 'gapply' APIs instead.") } else { stop("'schema' should be DDL-formatted string or structType.") } diff --git a/R/pkg/R/install.R b/R/pkg/R/install.R index 8c5355a8324f9..ea2c0b4c0f42f 100644 --- a/R/pkg/R/install.R +++ b/R/pkg/R/install.R @@ -89,8 +89,8 @@ install.spark <- function(hadoopVersion = "2.7", mirrorUrl = NULL, } if (overwrite) { - message(paste0("Overwrite = TRUE: download and overwrite the tar file", - "and Spark package directory if they exist.")) + message("Overwrite = TRUE: download and overwrite the tar file", + "and Spark package directory if they exist.") } releaseUrl <- Sys.getenv("SPARKR_RELEASE_DOWNLOAD_URL") @@ -103,12 +103,11 @@ install.spark <- function(hadoopVersion = "2.7", mirrorUrl = NULL, # can use dir.exists(packageLocalDir) under R 3.2.0 or later if (!is.na(file.info(packageLocalDir)$isdir) && !overwrite) { if (releaseUrl != "") { - message(paste(packageName, "found, setting SPARK_HOME to", packageLocalDir)) + message(packageName, " found, setting SPARK_HOME to ", packageLocalDir) } else { - fmt <- "%s for Hadoop %s found, setting SPARK_HOME to %s" - msg <- sprintf(fmt, version, ifelse(hadoopVersion == "without", "Free build", hadoopVersion), - packageLocalDir) - message(msg) + message(version, " for Hadoop ", + if (hadoopVersion == "without") "Free build" else hadoopVersion, + " found, setting SPARK_HOME to ", packageLocalDir) } Sys.setenv(SPARK_HOME = packageLocalDir) return(invisible(packageLocalDir)) @@ -127,26 +126,23 @@ install.spark <- function(hadoopVersion = "2.7", mirrorUrl = NULL, success <- downloadUrl(releaseUrl, packageLocalPath) if (!success) { unlink(packageLocalPath) - stop(paste0("Fetch failed from ", releaseUrl)) + stop("Fetch failed from ", releaseUrl) } } else { robustDownloadTar(mirrorUrl, version, hadoopVersion, packageName, packageLocalPath) } } - message(sprintf("Installing to %s", localDir)) + message("Installing to ", localDir) # There are two ways untar can fail - untar could stop() on errors like incomplete block on file # or, tar command can return failure code success <- tryCatch(untar(tarfile = packageLocalPath, exdir = localDir) == 0, error = function(e) { - message(e) - message() + message(e, "\n") FALSE }, warning = function(w) { - # Treat warning as error, add an empty line with message() - message(w) - message() + message(w, "\n") FALSE }) if (!tarExists || overwrite || !success) { @@ -160,7 +156,7 @@ install.spark <- function(hadoopVersion = "2.7", mirrorUrl = NULL, if (!success) stop("Extract archive failed.") message("DONE.") Sys.setenv(SPARK_HOME = packageLocalDir) - message(paste("SPARK_HOME set to", packageLocalDir)) + message("SPARK_HOME set to ", packageLocalDir) invisible(packageLocalDir) } @@ -173,7 +169,7 @@ robustDownloadTar <- function(mirrorUrl, version, hadoopVersion, packageName, pa if (success) { return() } else { - message(paste0("Unable to download from mirrorUrl: ", mirrorUrl)) + message("Unable to download from mirrorUrl: ", mirrorUrl) } } else { message("MirrorUrl not provided.") @@ -201,11 +197,9 @@ robustDownloadTar <- function(mirrorUrl, version, hadoopVersion, packageName, pa # remove any partially downloaded file unlink(packageLocalPath) message("Unable to download from default mirror site: ", mirrorUrl) - msg <- sprintf(paste("Unable to download Spark %s for Hadoop %s.", - "Please check network connection, Hadoop version,", - "or provide other mirror sites."), - version, ifelse(hadoopVersion == "without", "Free build", hadoopVersion)) - stop(msg) + stop("Unable to download Spark ", version, + " for Hadoop ", if (hadoopVersion == "without") "Free build" else hadoopVersion, + ". Please check network connection, Hadoop version, or provide other mirror sites.") } } @@ -222,7 +216,7 @@ getPreferredMirror <- function(version, packageName) { endPos <- matchInfo + attr(matchInfo, "match.length") - 2 mirrorPreferred <- base::substr(linePreferred, startPos, endPos) mirrorPreferred <- paste0(mirrorPreferred, "spark") - message(sprintf("Preferred mirror site found: %s", mirrorPreferred)) + message("Preferred mirror site found: ", mirrorPreferred) } else { mirrorPreferred <- NULL } @@ -231,24 +225,20 @@ getPreferredMirror <- function(version, packageName) { directDownloadTar <- function(mirrorUrl, version, hadoopVersion, packageName, packageLocalPath) { packageRemotePath <- paste0(file.path(mirrorUrl, version, packageName), ".tgz") - fmt <- "Downloading %s for Hadoop %s from:\n- %s" - msg <- sprintf(fmt, version, ifelse(hadoopVersion == "without", "Free build", hadoopVersion), - packageRemotePath) - message(msg) + message("Downloading ", version, " for Hadoop ", + if (hadoopVersion == "without") "Free build" else hadoopVersion, + " from:\n- ", packageRemotePath) downloadUrl(packageRemotePath, packageLocalPath) } downloadUrl <- function(remotePath, localPath) { isFail <- tryCatch(download.file(remotePath, localPath), error = function(e) { - message(e) - message() + message(e, "\n") TRUE }, warning = function(w) { - # Treat warning as error, add an empty line with message() - message(w) - message() + message(w, "\n") TRUE }) !isFail @@ -279,9 +269,9 @@ sparkCachePath <- function() { winAppPath <- Sys.getenv("USERPROFILE", unset = NA) } if (is.na(winAppPath)) { - stop(paste("%LOCALAPPDATA% and %USERPROFILE% not found.", - "Please define the environment variable", - "or restart and enter an installation path in localDir.")) + stop("%LOCALAPPDATA% and %USERPROFILE% not found. ", + "Please define the environment variable ", + "or restart and enter an installation path in localDir.") } else { path <- file.path(winAppPath, "Apache", "Spark", "Cache") } @@ -293,7 +283,7 @@ sparkCachePath <- function() { Sys.getenv("XDG_CACHE_HOME", file.path(Sys.getenv("HOME"), ".cache")), "spark") } } else { - stop(sprintf("Unknown OS: %s", .Platform$OS.type)) + stop("Unknown OS: ", .Platform$OS.type) } normalizePath(path, mustWork = FALSE) } @@ -322,7 +312,7 @@ installInstruction <- function(mode) { "If you need further help, ", "contact the administrators of the cluster.") } else { - stop(paste0("No instruction found for ", mode, " mode.")) + stop("No instruction found for mode ", mode) } } diff --git a/R/pkg/R/mllib_classification.R b/R/pkg/R/mllib_classification.R index 5cc97ea723afc..ec83b6bd406a7 100644 --- a/R/pkg/R/mllib_classification.R +++ b/R/pkg/R/mllib_classification.R @@ -337,8 +337,8 @@ setMethod("spark.logit", signature(data = "SparkDataFrame", formula = "formula") if (!is.null(lowerBoundsOnCoefficients) && (row != nrow(upperBoundsOnCoefficients) || col != ncol(upperBoundsOnCoefficients))) { - stop(paste0("dimension of upperBoundsOnCoefficients ", - "is not the same as lowerBoundsOnCoefficients")) + stop("dimension of upperBoundsOnCoefficients ", + "is not the same as lowerBoundsOnCoefficients") } if (is.null(lowerBoundsOnCoefficients)) { diff --git a/R/pkg/R/mllib_stat.R b/R/pkg/R/mllib_stat.R index f8c3329359961..6db4d5d4831dd 100644 --- a/R/pkg/R/mllib_stat.R +++ b/R/pkg/R/mllib_stat.R @@ -69,8 +69,7 @@ setMethod("spark.kstest", signature(data = "SparkDataFrame"), function(data, testCol = "test", nullHypothesis = c("norm"), distParams = c(0, 1)) { tryCatch(match.arg(nullHypothesis), error = function(e) { - msg <- paste("Distribution", nullHypothesis, "is not supported.") - stop(msg) + stop("Distribution ", nullHypothesis, " is not supported.") }) if (nullHypothesis == "norm") { distParams <- as.numeric(distParams) diff --git a/R/pkg/R/pairRDD.R b/R/pkg/R/pairRDD.R index 9c2e57d3067db..b29381bb900fb 100644 --- a/R/pkg/R/pairRDD.R +++ b/R/pkg/R/pairRDD.R @@ -906,7 +906,7 @@ setMethod("sampleByKey", for (elem in fractions) { if (elem < 0.0) { - stop(paste("Negative fraction value ", fractions[which(fractions == elem)])) + stop("Negative fraction value ", fractions[which(fractions == elem)]) } } diff --git a/R/pkg/R/schema.R b/R/pkg/R/schema.R index 89d5c2cd1a5e2..7044ede0cc58b 100644 --- a/R/pkg/R/schema.R +++ b/R/pkg/R/schema.R @@ -199,7 +199,7 @@ checkType <- function(type) { }) } - stop(paste("Unsupported type for SparkDataframe:", type)) + stop("Unsupported type for SparkDataframe: ", type) } #' @param type The data type of the field diff --git a/R/pkg/R/serialize.R b/R/pkg/R/serialize.R index cb3c1c59d12ed..7760d9be16f0b 100644 --- a/R/pkg/R/serialize.R +++ b/R/pkg/R/serialize.R @@ -84,7 +84,7 @@ writeObject <- function(con, object, writeType = TRUE) { Date = writeDate(con, object), POSIXlt = writeTime(con, object), POSIXct = writeTime(con, object), - stop(paste("Unsupported type for serialization", type))) + stop("Unsupported type for serialization ", type)) } writeVoid <- function(con) { @@ -158,7 +158,7 @@ writeType <- function(con, class) { Date = "D", POSIXlt = "t", POSIXct = "t", - stop(paste("Unsupported type for serialization", class))) + stop("Unsupported type for serialization ", class)) writeBin(charToRaw(type), con) } diff --git a/R/pkg/R/sparkR.R b/R/pkg/R/sparkR.R index 9ba36ad46740a..e4a11a5f78a71 100644 --- a/R/pkg/R/sparkR.R +++ b/R/pkg/R/sparkR.R @@ -154,8 +154,8 @@ sparkR.sparkContext <- function( connectionTimeout <- as.numeric(Sys.getenv("SPARKR_BACKEND_CONNECTION_TIMEOUT", "6000")) if (existingPort != "") { if (length(packages) != 0) { - warning(paste("sparkPackages has no effect when using spark-submit or sparkR shell", - " please use the --packages commandline instead", sep = ",")) + warning("sparkPackages has no effect when using spark-submit or sparkR shell, ", + "please use the --packages commandline instead") } backendPort <- existingPort authSecret <- Sys.getenv("SPARKR_BACKEND_AUTH_SECRET") @@ -439,8 +439,9 @@ sparkR.session <- function( rPackageVersion <- paste0(packageVersion("SparkR")) if (jvmVersionStrip != rPackageVersion) { - warning(paste("Version mismatch between Spark JVM and SparkR package. JVM version was", - jvmVersion, ", while R package version was", rPackageVersion)) + warning("Version mismatch between Spark JVM and SparkR package. ", + "JVM version was ", jvmVersion, + ", while R package version was ", rPackageVersion) } sparkSession diff --git a/R/pkg/R/utils.R b/R/pkg/R/utils.R index c60e4db1496d0..65db9c21d9dbb 100644 --- a/R/pkg/R/utils.R +++ b/R/pkg/R/utils.R @@ -46,9 +46,9 @@ convertJListToRList <- function(jList, flatten, logicalUpperBound = NULL, res <- list(unserialize(keyBytes), unserialize(valBytes)) } else { - stop(paste("utils.R: convertJListToRList only supports", - "RDD[Array[Byte]] and", - "JavaPairRDD[Array[Byte], Array[Byte]] for now")) + stop("utils.R: convertJListToRList only supports ", + "RDD[Array[Byte]] and ", + "JavaPairRDD[Array[Byte], Array[Byte]] for now") } } else { if (inherits(obj, "raw")) { @@ -354,8 +354,8 @@ varargsToStrEnv <- function(...) { } else { value <- pairs[[name]] if (!(is.logical(value) || is.numeric(value) || is.character(value) || is.null(value))) { - stop(paste0("Unsupported type for ", name, " : ", class(value), - ". Supported types are logical, numeric, character and NULL."), call. = FALSE) + stop("Unsupported type for ", name, " : ", toString(class(value)), ". ", + "Supported types are logical, numeric, character and NULL.", call. = FALSE) } if (is.logical(value)) { env[[name]] <- tolower(as.character(value)) @@ -369,8 +369,7 @@ varargsToStrEnv <- function(...) { } if (length(ignoredNames) != 0) { - warning(paste0("Unnamed arguments ignored: ", paste(ignoredNames, collapse = ", "), "."), - call. = FALSE) + warning("Unnamed arguments ignored: ", toString(ignoredNames), ".", call. = FALSE) } env } @@ -449,7 +448,7 @@ storageLevelToString <- function(levelObj) { # the user to type (for example) `5` instead of `5L` to avoid a confusing error message. numToInt <- function(num) { if (as.integer(num) != num) { - warning(paste("Coercing", as.list(sys.call())[[2]], "to integer.")) + warning("Coercing ", as.list(sys.call())[[2L]], " to integer.") } as.integer(num) } @@ -650,8 +649,8 @@ mergePartitions <- function(rdd, zip) { # For zip operation, check if corresponding partitions # of both RDDs have the same number of elements. if (zip && lengthOfKeys != lengthOfValues) { - stop(paste("Can only zip RDDs with same number of elements", - "in each pair of corresponding partitions.")) + stop("Can only zip RDDs with same number of elements ", + "in each pair of corresponding partitions.") } if (lengthOfKeys > 1) { @@ -804,7 +803,7 @@ handledCallJMethod <- function(obj, method, ...) { captureJVMException <- function(e, method) { rawmsg <- as.character(e) - if (any(grep("^Error in .*?: ", rawmsg))) { + if (any(grepl("^Error in .*?: ", rawmsg))) { # If the exception message starts with "Error in ...", this is possibly # "Error in invokeJava(...)". Here, it replaces the characters to # `paste("Error in", method, ":")` in order to identify which function @@ -818,58 +817,58 @@ captureJVMException <- function(e, method) { } # StreamingQueryException could wrap an IllegalArgumentException, so look for that first - if (any(grep("org.apache.spark.sql.streaming.StreamingQueryException: ", - stacktrace, fixed = TRUE))) { + if (any(grepl("org.apache.spark.sql.streaming.StreamingQueryException: ", + stacktrace, fixed = TRUE))) { msg <- strsplit(stacktrace, "org.apache.spark.sql.streaming.StreamingQueryException: ", fixed = TRUE)[[1]] # Extract "Error in ..." message. rmsg <- msg[1] # Extract the first message of JVM exception. first <- strsplit(msg[2], "\r?\n\tat")[[1]][1] - stop(paste0(rmsg, "streaming query error - ", first), call. = FALSE) - } else if (any(grep("java.lang.IllegalArgumentException: ", stacktrace, fixed = TRUE))) { + stop(rmsg, "streaming query error - ", first, call. = FALSE) + } else if (any(grepl("java.lang.IllegalArgumentException: ", stacktrace, fixed = TRUE))) { msg <- strsplit(stacktrace, "java.lang.IllegalArgumentException: ", fixed = TRUE)[[1]] # Extract "Error in ..." message. rmsg <- msg[1] # Extract the first message of JVM exception. first <- strsplit(msg[2], "\r?\n\tat")[[1]][1] - stop(paste0(rmsg, "illegal argument - ", first), call. = FALSE) - } else if (any(grep("org.apache.spark.sql.AnalysisException: ", stacktrace, fixed = TRUE))) { + stop(rmsg, "illegal argument - ", first, call. = FALSE) + } else if (any(grepl("org.apache.spark.sql.AnalysisException: ", stacktrace, fixed = TRUE))) { msg <- strsplit(stacktrace, "org.apache.spark.sql.AnalysisException: ", fixed = TRUE)[[1]] # Extract "Error in ..." message. rmsg <- msg[1] # Extract the first message of JVM exception. first <- strsplit(msg[2], "\r?\n\tat")[[1]][1] - stop(paste0(rmsg, "analysis error - ", first), call. = FALSE) + stop(rmsg, "analysis error - ", first, call. = FALSE) } else - if (any(grep("org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: ", - stacktrace, fixed = TRUE))) { + if (any(grepl("org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: ", + stacktrace, fixed = TRUE))) { msg <- strsplit(stacktrace, "org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: ", fixed = TRUE)[[1]] # Extract "Error in ..." message. rmsg <- msg[1] # Extract the first message of JVM exception. first <- strsplit(msg[2], "\r?\n\tat")[[1]][1] - stop(paste0(rmsg, "no such database - ", first), call. = FALSE) + stop(rmsg, "no such database - ", first, call. = FALSE) } else - if (any(grep("org.apache.spark.sql.catalyst.analysis.NoSuchTableException: ", - stacktrace, fixed = TRUE))) { + if (any(grepl("org.apache.spark.sql.catalyst.analysis.NoSuchTableException: ", + stacktrace, fixed = TRUE))) { msg <- strsplit(stacktrace, "org.apache.spark.sql.catalyst.analysis.NoSuchTableException: ", fixed = TRUE)[[1]] # Extract "Error in ..." message. rmsg <- msg[1] # Extract the first message of JVM exception. first <- strsplit(msg[2], "\r?\n\tat")[[1]][1] - stop(paste0(rmsg, "no such table - ", first), call. = FALSE) - } else if (any(grep("org.apache.spark.sql.catalyst.parser.ParseException: ", - stacktrace, fixed = TRUE))) { + stop(rmsg, "no such table - ", first, call. = FALSE) + } else if (any(grepl("org.apache.spark.sql.catalyst.parser.ParseException: ", + stacktrace, fixed = TRUE))) { msg <- strsplit(stacktrace, "org.apache.spark.sql.catalyst.parser.ParseException: ", fixed = TRUE)[[1]] # Extract "Error in ..." message. rmsg <- msg[1] # Extract the first message of JVM exception. first <- strsplit(msg[2], "\r?\n\tat")[[1]][1] - stop(paste0(rmsg, "parse error - ", first), call. = FALSE) + stop(rmsg, "parse error - ", first, call. = FALSE) } else { stop(stacktrace, call. = FALSE) } diff --git a/R/pkg/tests/fulltests/test_sparkSQL.R b/R/pkg/tests/fulltests/test_sparkSQL.R index b7172b2ae0774..611d9057c0f13 100644 --- a/R/pkg/tests/fulltests/test_sparkSQL.R +++ b/R/pkg/tests/fulltests/test_sparkSQL.R @@ -2558,7 +2558,7 @@ test_that("join(), crossJoin() and merge() on a DataFrame", { error_msg <- paste("joinType must be one of the following types:", "'inner', 'cross', 'outer', 'full', 'fullouter', 'full_outer',", "'left', 'leftouter', 'left_outer', 'right', 'rightouter', 'right_outer',", - "'semi', 'leftsemi', 'left_semi', 'anti', 'leftanti' or 'left_anti'.") + "'semi', 'leftsemi', 'left_semi', 'anti', 'leftanti', 'left_anti'") expect_error(join(df2, df, df2$name == df$name, "invalid"), error_msg) merged <- merge(df, df2, by.x = "name", by.y = "name", all.x = TRUE, all.y = TRUE)