我可以在同一个 Flink 作业中使用 DataSet API 和 DataStream API 吗?

Can I use the DataSet API and the DataStream API in the same Flink job?

我正在使用Flink流从Kafka读取数据并处理数据。在应用程序启动时从 Kafka 消费之前,我需要使用 DataSet API 读取文件并根据某些条件对文件进行排序并从中创建一个列表。然后开始以流方式从 Kafka 消费。我已经编写了一个逻辑来使用 DataSet API 从文件中读取和排序数据。但是当我尝试调整它永远不会执行的程序时,Flink 立即开始从 Kafka 消费。有什么方法可以先处理数据集然后在 Flink 中流式传输?

不,不能混合使用 DataSet 和 DataStream API。但是,您可以从相同的 main() 方法启动两个程序,但必须将 DataSet 程序的排序结果写入 DataStream 程序使用的文件。

为您的 DataSet 操作创建另一个 Flink 作业,并将结果发送到您的 Streaming 作业正在使用的 Kafka。