使用java读取gz压缩的hdfs文件
根据hdfs文件的后缀类型自动识别并解压:
Path hdfsPath = new Path(args[0]); Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(hdfsPath.toUri(),conf); CompressionCodecFactory factory = new CompressionCodecFactory(conf); CompressionCodec codec = factory.getCodec(hdfsPath); FSDataInputStream inputStream = fs.open(hdfsPath); BufferedReader reader = null; try { if (codec == null) { reader = new BufferedReader(new InputStreamReader(inputStream)); } else { CompressionInputStream comInputStream = codec.createInputStream(inputStream); reader = new BufferedReader(new InputStreamReader(comInputStream)); } } catch (Exception e) { e.printStackTrace(); }