我们如何使用Spaces在hive中创建分区?

时间:2017-03-08 11:15:26

标签: java hadoop amazon-s3 hive hadoop-partitioning

我们想在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)

如果有任何选择可以逃避它并提供进一步继续的输入,请提供协助。

0 个答案:

没有答案