Github user srowen commented on a diff in the pull request:
https://github.com/apache/spark/pull/20611#discussion_r211106213
--- Diff: core/src/main/scala/org/apache/spark/util/Utils.scala ---
@@ -1976,6 +1976,40 @@ private[spark] object Utils extends Logging {
}
}
+ /**
+ * Returns a qualified path object, API ported from
org.apache.hadoop.fs.Path class
+ * @param defaultUri default uri corresponding to the filesystem
provided.
+ * @param workingDir the working directory for the particular child path
wd-relative names.
+ * @param path Path instance based on the path string specified by the
user.
+ * @return Returns a qualified path object
+ */
+ def makeQualified(defaultUri: URI, workingDir: Path, path: Path): Path =
{
+ val pathUri = if (!path.isAbsolute()) new Path(workingDir,
path).toUri() else path.toUri()
+ val newPaths = {
+ if (pathUri.getScheme == null || pathUri.getAuthority == null &&
+ defaultUri.getAuthority != null) {
+ val scheme = if (pathUri.getScheme == null) defaultUri.getScheme
else pathUri.getScheme
+ val authority = {
+ if (pathUri.getAuthority == null) {
+ if (defaultUri.getAuthority == null) "" else
defaultUri.getAuthority
+ } else {
+ pathUri.getAuthority
+ }
+ }
+ try {
+ var newUri = new URI(scheme, authority, pathUri.getPath,
null.asInstanceOf[String],
--- End diff --
Is this really ambiguous such that it needs a cast? I only see one 5-arg
constructor for URI. Also doesn't need to be a `var`; could be inlined too
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]