Flink два разных пакета для ProcessWindowFunction - PullRequest
0 голосов
/ 07 июля 2019

Вопрос

В чем разница ProcessWindowFunction в разных пакетах и ​​где и когда использовать какой из них?

  • org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction
  • org.apache.flink.streaming.api.scala.function.ProcessWindowFunction

Для операций с окнами, как в Apache Flink: реализация ProcessWindowFunction , org.apache.flink.streaming.api.scala является правильным для использования, но не смог найти документацию по API Flink 1.8, только для 1.3.

Если я использую org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction , получить ошибку.

Error:(66, 20) type mismatch;
 found   : com.dataartisans.flinktraining.exercises.datastream_scala.windows.HourlyTipProcessFunction
 required: org.apache.flink.streaming.api.scala.function.ProcessWindowFunction[com.dataartisans.flinktraining.exercises.datastream_java.datatypes.TaxiFare,?,org.apache.flink.api.java.tuple.Tuple,org.apache.flink.streaming.api.windowing.windows.TimeWindow]
          .process(new HourlyTipProcessFunction())

Среда

Ubuntu

VERSION = "18.04.2 LTS (Bionic Beaver)"

pom.xml
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <slf4j.version>1.7.19</slf4j.version>
    <flink.version>1.8.0</flink.version>
    <scala.binary.version>2.12</scala.binary.version>
    <junit.version>4.12</junit.version>
</properties>

1 Ответ

2 голосов
/ 08 июля 2019

org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction - это класс Java API для ProcessWindowFunctions для KeyedStreams.

org.apache.flink.streaming.api.scala.function.ProcessWindowFunction isто же самое, но для Scala API.

ProcessAllWindowFunctions предназначены для окон в неключевых потоках.

...