大佬们好,有用过1.15 FileSink DataStream api的合并小文件功能吗,我这里写文件用gz格式压缩,发现合并后的文件读不了。
Format 
Type使用的是FileSink.forBulkFormat;BulkWriter.Factory使用的是CompressWriterFactory,使用gz压缩;合并文件的Compactor使用的是原生的ConcatFileCompactor。


以下是使用FileSink的相关代码:
CompressWriterFactory writer =
               CompressWriters.forExtractor(new DefaultExtractor())
                       .withHadoopCompression("Gzip", new Configuration());

FileSink hdfsSink = FileSink.forBulkFormat(new Path("hdfs://xxxx"), writer)
               .withBucketCheckInterval(60000)
               .enableCompact(
                       FileCompactStrategy.Builder.newBuilder()
                               .setNumCompactThreads(1024)
                               .enableCompactionOnCheckpoint(3)
                               .build(),
                               new ConcatFileCompactor())
                       .build();


当压缩的小文件被合并后,发现这个被合并的文件不可读:
使用hdfs dfs -text 
/xxxx/2022-08-03--13/compacted-part-00857a94-bf23-4ae7-a55b-d39c2fdca565-0.gz后
报错:text: invalid block type


请问是1.15 FileSink DataStream api目前是还不支持压缩文件的合并吗?还是我有什么地方用错了或者没注意到的?


感谢各位大佬抽空解答!

回复