Flink, где я могу найти метод ExecutionEnvironment # readSequenceFile? - PullRequest
1 голос
/ 08 апреля 2019

У меня есть файлы данных hdfs, которые были изначально созданы заданием mapreduce с настройками вывода, как показано ниже,

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 Ответ

1 голос
/ 08 апреля 2019

Я думаю, что вы пропустили дополнительную зависимость: "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

Надеюсь, что поможет

...