Flink,在哪里可以找到ExecutionEnvironment#readSequenceFile方法?

时间:2019-04-08 06:47:44

标签: apache-flink

我有最初由mapreduce作业创建的hdfs数据文件,其输出设置如下所示,

job.setOutputKeyClass(BytesWritable.class);
job.setOutputValueClass(BytesWritable.class);
job.setOutputFormatClass(SequenceFileAsBinaryOutputFormat.class);
SequenceFileAsBinaryOutputFormat.setOutputCompressionType(job, CompressionType.BLOCK);

现在,我正尝试使用Flink DataSet API(版本1.5.6)读取这些文件,我调查了flink doc,但不知道如何做到这一点。

  1. 在文档中,有一个API“ readSequenceFile”,我只是在类ExecutionEnvironment中找不到它,我可以找到“ readCsvFile”,“ readTextFile”,但找不到这个。
  2. 通常有一个'readFile(inputFormat,path)',但我不知道inputFormat是什么,看来这个API不接受hadoop输入格式,例如'SequenceFileAsBinaryInputFormat'。

有人可以在这里阐明一下吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

我想您错过的是一个附加的依赖项:"org.apache.flink" %% "flink-hadoop-compatibility" % 1.7.2

添加此内容后,即可运行:

val env = ExecutionEnvironment.getExecutionEnvironment
env.createInput(HadoopInputs.readSequenceFile[Long, String](classOf[Long], classOf[String], "/data/wherever"))

https://ci.apache.org/projects/flink/flink-docs-stable/dev/batch/hadoop_compatibility.html

中找到有关内容和方式的更详细的文档。

希望有帮助