flink 问题总结(4)如何读取sequence 文件

请移步 flink问题总结目录 (不断更新中)

问题: flink1.8 如何读HDFS的sequence 文件?

解决办法:

1.flink lib目录下需要放下,对应版本的jar包

flink-hadoop-compatibility_2.11-1.8.0.jar
flink-shaded-hadoop-2-uber-2.6.5-8.0.jar

  1. pom 文件中需要有对应haoop的jar包
    3.代码如下
Job job = Job.getInstance();
FileInputFormat.addInputPath(job, new Path(path));
DataStream dataStream = env.createInput(
                HadoopInputs.createHadoopInput(
                        new SequenceFileInputFormat(), IntWritable.class, Text.class, job))
                .flatMap(new FlatMapFunction, String>() {
                    @Override
                    public void flatMap(Tuple2 value, Collector collector) {
                        collector.collect(String.valueOf(value.f1));
                    }
                });

注意:Text转字符串,直接用String.valueOf(value.f1)转换即可,转成字节再转成字符串会有转码问题。

你可能感兴趣的:(flink 问题总结(4)如何读取sequence 文件)