Parquet读取文件给出java.net.URISyntaxException:绝对URI中的相对路径

时间:2018-02-16 09:22:28

标签: java amazon-s3 parquet

我有上传到S3的拼花文件,我将它们下载到一个文件夹。以下代码给出了错误:

Configuration conf = new Configuration();
Path path = new Path("/Users/mustafa/pqs/2018-02-16T08:30:23.570-d629f5af-23b8-44c7-bc41-ce6ad98b16cd.parquet");
ParquetFileReader file = ParquetFileReader.open(conf, path);
System.out.println(file.getFileMetaData().getSchema());

它尝试定位CRC文件,但它们不存在。但它给出了一个堰误差。

Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: .2018-02-16T08:30:23.570-d629f5af-23b8-44c7-bc41-ce6ad98b16cd.parquet.crc
    at org.apache.hadoop.fs.Path.initialize(Path.java:205)
    at org.apache.hadoop.fs.Path.<init>(Path.java:171)
    at org.apache.hadoop.fs.Path.<init>(Path.java:93)
    at org.apache.hadoop.fs.ChecksumFileSystem.getChecksumFile(ChecksumFileSystem.java:90)
    at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.<init>(ChecksumFileSystem.java:145)
    at org.apache.hadoop.fs.ChecksumFileSystem.open(ChecksumFileSystem.java:346)
    at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:769)
    at org.apache.parquet.hadoop.ParquetFileReader.<init>(ParquetFileReader.java:589)
    at org.apache.parquet.hadoop.ParquetFileReader.<init>(ParquetFileReader.java:575)
    at org.apache.parquet.hadoop.ParquetFileReader.open(ParquetFileReader.java:506)
    at com.opsgenie.sre.logmanagement.merge.ParquetMerger.main(ParquetMerger.java:11)
Caused by: java.net.URISyntaxException: Relative path in absolute URI: .2018-02-16T08:30:23.570-d629f5af-23b8-44c7-bc41-ce6ad98b16cd.parquet.crc
    at java.net.URI.checkPath(URI.java:1823)
    at java.net.URI.<init>(URI.java:745)
    at org.apache.hadoop.fs.Path.initialize(Path.java:202)
    ... 10 more

但是,如果我将文件名移动到一个简单的名称osman.parquet,它就可以了。为什么文件名2018-02-16T08:30:23.570-d629f5af-23b8-44c7-bc41-ce6ad98b16cd.parquet会让它变得疯狂?

1 个答案:

答案 0 :(得分:0)

该库不允许在路径名中使用:。显然,这可以更好地解决。

https://issues.apache.org/jira/browse/HDFS-13