我有一个 .gz
上传到hdfs中的文件,我试图提取该文件的内容并将其放入hdfs的同一目录中。这是我尝试的代码:
final String uri = "hdfs://localhost:8020/user/input1/output.gz";
Path pt=new Path(uri);
FileSystem fs = FileSystem.get(new Configuration());
Configuration conf = new Configuration();
CompressionCodecFactory factory = new CompressionCodecFactory(conf);
CompressionCodec codec = factory.getCodec(pt);
if(codec == null){
System.err.println("No Codec found !!!");
System.exit(1);
}
String outputUri = CompressionCodecFactory.removeSuffix(uri, codec.getDefaultExtension());
InputStream in = null;
OutputStream out = null;
try {
in = codec.createInputStream(fs.open(pt));
out = fs.create(new Path(outputUri));
} finally{
IOUtils.closeStream(in);
IOUtils.closeStream(out);
}
正在提取文件,但内容无效 0 B
. 请告知问题的起因。
1条答案
按热度按时间i5desfxk1#
你忘了把数据从输入复制到输出。