Github user felixcheung commented on a diff in the pull request:
https://github.com/apache/spark/pull/21278#discussion_r187237615
--- Diff: R/pkg/R/client.R ---
@@ -60,13 +60,48 @@ generateSparkSubmitArgs <- function(args, sparkHome,
jars, sparkSubmitOpts, pack
combinedArgs
}
+checkJavaVersion <- function() {
+ javaBin <- "java"
+ javaHome <- Sys.getenv("JAVA_HOME")
+ javaReqs <- packageDescription("SparkR", fields=c("SystemRequirements"))
+ sparkJavaVersion <- as.numeric(tail(strsplit(javaReqs, "[(=)]")[[1]], n
= 1L))
+ if (javaHome != "") {
+ javaBin <- file.path(javaHome, javaBin)
+ }
+
+ # If java is missing from PATH, we get an error in Unix and a warning in
Windows
+ javaVersionOut <- tryCatch(
+ launchScript(javaBin, "-version", wait = TRUE, stdout = TRUE, stderr
= TRUE),
+ error = function(e) {
+ stop("Java version check failed. Please make sure
Java is installed",
+ " and set JAVA_HOME to point to the installation
directory.")
+ },
+ warning = function(w) {
+ stop("Java version check failed. Please make sure
Java is installed",
+ " and set JAVA_HOME to point to the installation
directory.")
+ })
+ javaVersionFilter <- Filter(
+ function(x) {
+ grepl("java version", x)
+ }, javaVersionOut)
+
+ javaVersionStr <- strsplit(javaVersionFilter[[1]], "[\"]")[[1L]][2]
+ # javaVersionStr is of the form 1.8.0_92.
+ # Extract 8 from it to compare to sparkJavaVersion
+ javaVersionNum <- as.numeric(paste0(strsplit(javaVersionStr,
"[.]")[[1L]][2], collapse = "."))
--- End diff --
isn't `as.numeric(strsplit(javaVersionStr, "[.]")[[1L]][2])` sufficient?
or `as.integer(strsplit(javaVersionStr, "[.]")[[1L]][2])`
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]