code: public static FileSystem get(URI uri, Configuration conf) throws IOException {
      String scheme = uri.getScheme();
      String authority = uri.getAuthority();
  
      if (scheme == null) {                       // no scheme: use default FS
        return get(conf);
      }
  
      if (authority == null) {                       // no authority
        URI defaultUri = getDefaultUri(conf);
        if (scheme.equals(defaultUri.getScheme())    // if scheme matches default
            && defaultUri.getAuthority() != null) {  // & default has authority
          return get(defaultUri, conf);              // return default
        }
      }
  
      String disableCacheName = String.format("fs.%s.impl.disable.cache", scheme);
      if (conf.getBoolean(disableCacheName, false)) {
        return createFileSystem(uri, conf, null);
      }
  
      return CACHE.get(uri, conf);
    }
docs: Returns the FileSystem for this URI's scheme and authority.  The scheme
  of the URI determines a configuration property name,
  <tt>fs.<i>scheme</i>.class</tt> whose value names the FileSystem class.
  The entire URI is passed to the FileSystem instance's initialize method.