你好,
我與CreateDate dataframe列這種格式:
CreateDate
(1593786688000 + 0200)/ /日期
(1446032157000 + 0100)/ /日期
(1533904635000 + 0200)/ /日期
(1447839805000 + 0100)/ /日期
(1589451249000 + 0200)/ /日期
我想這種格式轉換為日期/時間戳,所以除外的輸出將會是:
CreateDate
2020-07-03 14:31:28 + 02:00
2015-10-28 11:35:57 + 01:00
2018-08-10 12:37:15 + 02:00
2015-11-18 09:43:25 + 01:00
2020-05-14 10:14:09 + 02:00
我有這個查詢出所需的輸出在SQL和可以幫助開發:
鑄造(轉換(VARCHAR(30),返回(第二,轉換(長整型數字,左(取代(替換(CreateDate’/日期(“,”),“/”,“),13))/ 1000的1970-01-01就是“),20)+ ' ' + ' + ' +左(右(替換(替換(CreateDate’/日期(“,”),“/”,“),4),2)+ ':' +右(更換(更換(CreateDate,”/日期(“、”),“/”,“),2)DATETIMEOFFSET CreateDate (0))
誰能幫我實現嗎?
謝謝你!
嗨@Bruno佛朗哥,
請嚐試以下代碼,希望它會給你的。
從pyspark.sql。從pyspark進口from_unixtime功能。sql函數作為F final_df = df_src導入。withColumn (“Final_Timestamp from_unixtime ((F.regexp_extract(坳(“CreateDate”),“(\ d +)”,1)/1000),"yyyy-MM-dd HH:mm:ss"))\ .withColumn("Offset_Time", F.regexp_extract(split(df_source['CreateDate'],'\\+')[1], "(\d+)", 1)) display(final_df)
1000因為我把價值from_unixtime需要參數在幾秒鍾內,和你
時間戳,以毫秒為單位。
快樂學習! !
嗨@Bruno佛朗哥,
請嚐試以下代碼,希望它會給你的。
從pyspark.sql。從pyspark進口from_unixtime功能。sql函數作為F final_df = df_src導入。withColumn (“Final_Timestamp from_unixtime ((F.regexp_extract(坳(“CreateDate”),“(\ d +)”,1)/1000),"yyyy-MM-dd HH:mm:ss"))\ .withColumn("Offset_Time", F.regexp_extract(split(df_source['CreateDate'],'\\+')[1], "(\d+)", 1)) display(final_df)
1000因為我把價值from_unixtime需要參數在幾秒鍾內,和你
時間戳,以毫秒為單位。
快樂學習! !
非常感謝@Ratna Chaitanya Raju Bandaru,我拿起你的代碼和我這樣做:
final_df = df。withColumn (“CreateDateNew concat (from_unixtime ((F.regexp_extract(坳(“CreateDate”),“(\ d +)”,1)/1000),"yyyy-MM-dd HH:mm:ss"), lit(" "), regexp_replace(regexp_extract("CreateDate", re, 2), "(\\d{2})(\\d{2})" , "$1:$2" )))
和我期望的輸出:
再一次,感謝和親切的問候