這篇文章主要介紹了Flink中如何使用TimeWindowAll,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)專注于南澗企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購物商城網(wǎng)站建設(shè)。南澗網(wǎng)站建設(shè)公司,為南澗等地區(qū)提供建站服務(wù)。全流程按需設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
timeWindowAll時間滾動窗口(不分區(qū)時間滾動窗口【滑動窗口與滾動窗口的區(qū)別,在于滑動窗口會有數(shù)據(jù)元素重疊可能,而滾動窗口不存在元素重疊】)
示例環(huán)境
java.version: 1.8.xflink.version: 1.11.1
Flink 系例 之 搭建開發(fā)環(huán)境與數(shù)據(jù)
TimeWindowAll.java
import com.flink.examples.DataSource; import org.apache.flink.api.java.tuple.Tuple3; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.api.functions.source.RichSourceFunction; import org.apache.flink.streaming.api.windowing.time.Time; import java.util.List; /** * @Description 不分區(qū)時間滾動窗口 */ public class TimeWindowAll { /* 窗口在處理流數(shù)據(jù)時,通常會對流進(jìn)行分區(qū); 數(shù)據(jù)流劃分為: keyed(根據(jù)key劃分不同數(shù)據(jù)流區(qū)) non-keyed(指沒有按key劃分的數(shù)據(jù)流區(qū),指所有原始數(shù)據(jù)流) */ /** * 遍歷集合,返回指定時間滾動窗口下最大年齡數(shù)據(jù)記錄 * @param args * @throws Exception */ public static void main(String[] args) throws Exception { final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //env.setParallelism(1); DataStream<Tuple3<String, String, Integer>> inStream = env.addSource(new MyRichSourceFunction()); DataStream<Tuple3<String, String, Integer>> dataStream = inStream //按時間窗口滾動,對前6秒內(nèi)的輸入數(shù)據(jù)流,計算一次 .timeWindowAll(Time.seconds(6)) //注意:計算變量為f2 .maxBy(2); dataStream.print(); env.execute("flink TimeWindow job"); } /** * 模擬數(shù)據(jù)持續(xù)輸出 */ public static class MyRichSourceFunction extends RichSourceFunction<Tuple3<String, String, Integer>> { @Override public void run(SourceContext<Tuple3<String, String, Integer>> ctx) throws Exception { List<Tuple3<String, String, Integer>> tuple3List = DataSource.getTuple3ToList(); for (Tuple3 tuple3 : tuple3List){ ctx.collect(tuple3); //1秒鐘輸出一個 Thread.sleep(1 * 1000); } } @Override public void cancel() { try{ super.close(); }catch (Exception e){ e.printStackTrace(); } } } }
打印結(jié)果
2> (王五,man,29)
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Flink中如何使用TimeWindowAll”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
網(wǎng)頁標(biāo)題:Flink中如何使用TimeWindowAll
新聞來源:http://www.rwnh.cn/article44/jsdehe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、、營銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、外貿(mào)建站、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)