Flink 自定義udf 一 時間轉換類

2021-09-10 04:18:13 字數 1611 閱讀 2149

這個是乙個批處理的小demo,資料來源是mysql

連線**:

jdbcinputformat productstorechangerecordformat = jdbcinputformat.buildjdbcinputformat()

.setdrivername("")

.setdburl("")

.setusername("")

.setpassword("")

.setquery("sql")

.setrowtypeinfo(new rowtypeinfo(

types.string(),

types.sql_timestamp(),

types.int()))

.finish();

url需要注意:查詢時會報異常the driver has not received any packets from the server.加上下面的就可以了

jdbc:mysql://?useunicode=true&characterencoding=utf-8&autoreconnect=true&failoverreadonly=false

自定義udf:

public class datetransfunction extends scalarfunction 

public string eval(timestamp date)

}

基礎的類需要注意:是scalarfunction 

查詢邏輯:

batchtableenvironment.registerfunction("datehour", new datetransfunction(dateutilss.yyyy_mm_dd_hh));

batchtableenvironment.registerdataset("productstorechangerecord", batch_env.createinput(productstorechangerecordformat),

"productstoreid,createtime,totalcount");

table table = batchtableenvironment.

sqlquery("select datehour(createtime) as createtimehour from productstorechangerecord");

table table1 = table.select("cast(createtimehour , string) as createtimehour");

batchtableenvironment.todataset(table1, test.class).print();

需要注意的問題是在sqlquery裡面寫sql和在select裡寫sql是不一樣的,例如:cast()函式在sqlquery裡面是 as  在select中是 , 而且在sqlquery中使用cast()好像有點問題。select cast(datehour(createtime) as string)  as  createtimehour  這種寫法會報錯,這裡記錄一下sql的寫法和自定義。

努力吧,皮卡丘。

一 時間複雜度

一 時間複雜度計算規則 1.基本操作,即只有常數項,其時間複雜度為o 1 比如if,print 與規模n無關 2.順序結構 按加法計算 3.迴圈結構,按乘法計算 4。分支結構,時間複雜度取最大值。二 常見時間複雜度與大小關係 常數項 o 1 12線性項 o n 2n 3平方項 o n 2 4n 3 ...

第一時間響應客戶

為響應各種特殊需求,卓越亞馬遜開始大刀闊斧地變革其物流管理系統。早上到公司上班,只要輕點滑鼠,選中一本 杜拉拉公升職記 下午,它就被送到了你的面前。國內b2c電子商務公司卓越亞馬遜的這項服務討到了很多上班族的歡心。最近,這家網際網路公司又開始了他們的新一 勢,以滿足消費者的各種特殊要求。可是目前,國...

演算法(一)時間複雜度

演算法很重要,但是一般情況下做移動開發並不經常用到,所以很多同學早就將演算法打了個大禮包送還給了老師了,況且很多同學並沒有學習過演算法。這個系列就讓對演算法頭疼的同學能快速的掌握基本的演算法。過年放假階段玩了會遊戲nba2k17的生涯模式,沒有比賽的日子也都是訓練,而且這些訓練都是自發的,沒有人逼你...