@@ -4,7 +4,6 @@ assemblyJarName <- "sparkr-assembly-0.1.jar"
44
55sparkR.onLoad <- function (libname , pkgname ) {
66 assemblyJarPath <- paste(libname , " /SparkR/" , assemblyJarName , sep = " " )
7- assemblyJarPath <- gsub(" " , " \\ " , assemblyJarPath , fixed = T )
87 packageStartupMessage(" [SparkR] Initializing with classpath " , assemblyJarPath , " \n " )
98
109 .sparkREnv $ libname <- libname
@@ -98,9 +97,19 @@ sparkR.init <- function(
9897 }
9998
10099 sparkMem <- Sys.getenv(" SPARK_MEM" , " 512m" )
101- jars <- c(as.character(.sparkREnv $ assemblyJarPath ), as.character(sparkJars ))
102-
103- cp <- paste0(jars , collapse = " :" )
100+ jars <- suppressWarnings(
101+ normalizePath(c(as.character(.sparkREnv $ assemblyJarPath ), as.character(sparkJars ))))
102+
103+ # Classpath separator is ";" on Windows
104+ # URI needs four /// as from http://stackoverflow.com/a/18522792
105+ if (.Platform $ OS.type == " unix" ) {
106+ collapseChar <- " :"
107+ uriSep <- " //"
108+ } else {
109+ collapseChar <- " ;"
110+ uriSep <- " ////"
111+ }
112+ cp <- paste0(jars , collapse = collapseChar )
104113
105114 yarn_conf_dir <- Sys.getenv(" YARN_CONF_DIR" , " " )
106115 if (yarn_conf_dir != " " ) {
@@ -136,7 +145,7 @@ sparkR.init <- function(
136145 }
137146
138147 nonEmptyJars <- Filter(function (x ) { x != " " }, jars )
139- localJarPaths <- sapply(nonEmptyJars , function (j ) { paste(" file:// " , j , sep = " " ) })
148+ localJarPaths <- sapply(nonEmptyJars , function (j ) { utils :: URLencode( paste(" file:" , uriSep , j , sep = " " ) ) })
140149
141150 assign(
142151 " .sparkRjsc" ,
0 commit comments