直接写代码(懒得组织语言了):
df.Procedure_Start_Time.cast("float") #将Procedure_Start_TIme的string类型转成float
df=df.withColumn('Start_Timestamp',func.col("Procedure_Start_Time")/1000.0)
df=df.withCOlumn('Start_TIme',func.from_unixtime(df.Start_TImestamp('yyyy-MM-dd HH:mm:sss')))
flink 1.15.3(此时最新版本为1.16.1)mysql 5.7+mysql同步表结构mysql中的timestamp字段是可以正常同步的,但是多了8小时,设置了mysql链接属性也没效果参考下方的链接有两种方式;
通过
spark
-sql,将查询timstamp字段
时间戳
转换成
日期
格式:
val simpleDateFormat = new SimpleDateFormat("yyyyMM")
spark
.udf.register("changDate",(x:Long)=> simpleDateFormat.format(new Date(x * 1000L)))
spark
.sql("select mid,uid,score,changDate(timstamp) from Ratings")
--oracle获得当前时间的,精确到
毫秒
可以指定精确豪秒的位数select to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff ') from dual;--20120516 11:56:40.729083select to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff3 ') from dual;--2012...
spark
.udf.register("hexChar", (x: String) => {
val sb = new StringBuilder
for (i <- Range(0, x.length, 2)) {
val output = x.substrin...