0
Flink Streaming을 사용하여 시간 창 스트림에서 고유 단어 수를 세는 방법이 있습니까? this 질문을 볼 수 있지만 시간 창 구현 방법을 모르겠습니다.Flink를 사용하여 시간 창 스트림에서 고유 한 단어를 계산하는 방법은 무엇입니까?
Flink Streaming을 사용하여 시간 창 스트림에서 고유 단어 수를 세는 방법이 있습니까? this 질문을 볼 수 있지만 시간 창 구현 방법을 모르겠습니다.Flink를 사용하여 시간 창 스트림에서 고유 한 단어를 계산하는 방법은 무엇입니까?
확실히 간단합니다. 각 시간 창에서 모든 입력 레코드에 대해 집계를 원한다면 windowAll()의 풍미 중 하나를 사용해야합니다. 즉, keyedstream을 사용하지 않고 병렬로 작업 할 수 없습니다 .
tumbling windows 또는 sliding windows, 그리고 event time or processing time으로 운영할지 여부를 결정해야합니다.
그러나 대략적으로 말해서, 당신은 같은 것을 할 수 있습니다 :
는StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.addSource(...)
.timeWindowAll(Time.minutes(15))
.apply(new UniqueWordCounter())
.print()
env.execute()
귀하의 UniqueWordCounter는 창에 모든 단어의 반복 가능한을 수신하고 독특한 단어의 수를 반환하는 WindowFunction 될 것입니다.
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.addSource(...)
.keyBy(...)
.timeWindow(Time.minutes(15))
.apply(new UniqueWordCounter())
.print()
env.execute()
을하지만 probleme은 다음과 같습니다 : 당신이 keyedstream를 사용하여 각각의 키에 대해 고유 한 단어를 계산하려는 경우
한편, 그에 따라 응용 프로그램을 수정 각 키에 대해 내가 알아야 할 고유 한 값이므로 "keyBy"를 사용해야합니다 – FlinkNoob
이 경우도 포함하도록 답변을 업데이트했습니다 –
적용이 너무 많습니다. 적용하지 않고 적용 할 수 없습니까? – FlinkNoob