我们想在hive表中创建分区,但分区名称有一些空格。所以它无法创建分区。目前我们正在使用java。 我们试图逃离这个空间,但所有人都抛出异常。
URL -s3n://comp-data-bckp/data/datav/sample_test/sample_test_inner/2016-06-27/hive/warehouse/datav/sample_test_inner/platform=SONY PS3
HiveConf hiveConf= new HiveConf();
hiveConf.setVar(HiveConf.ConfVars.METASTOREURIS, URL);
hiveConf.setIntVar(HiveConf.ConfVars.METASTORE_CLIENT_SOCKET_TIMEOUT, 60);
CliSessionState css = new CliSessionState(hiveConf);
css.in = System.in;
css.out = null;
css.err = null;
css.setIsSilent(true);
SessionState.start(css);
CliDriver cli = new CliDriver();
int response = cli.processLine(statements);
SessionState s = SessionState.get();
if (s != null && s.out != null && s.out != System.out)
{
s.out.close();
}
return response;
java.net.URISyntaxException: Illegal character in path at index 126: s3n://comp-data-bckp/data/datav/sample_test/sample_test_inner/2016-06-27/hive/warehouse/datav/sample_test_inner/platform=SONY PS3
当我们尝试使用以下选项转义空格字符时,系统仍然会抛出上述错误。
- \\ (eg. S3n://…./ platform=SONY\\ PS3)
- %20 (eg. S3n://…./ platform=SONY%20PS3)
- + (eg. S3n://…./ platform=SONY+PS3)
如果有任何选择可以逃避它并提供进一步继续的输入,请提供协助。