取消
顯示的結果
而不是尋找
你的意思是:

to_timstamp函數non-legacy模式不解析這種格式:yyyyMMddHHmmssSS

b_1
新的貢獻者二世

我在數據集:有一個datetime字符串“2023061218154258”,我想把它轉換成datetime,使用以下代碼。但是我希望的格式工作,不工作,即:yyyyMMddHHmmssSS。這段代碼將重現這個問題:

從pyspark.sql。功能導入* spark.conf.set (“spark.sql.legacy.timeParserPolicy”、“糾正”)#如果配置設置為糾正然後轉換將返回null,而不是拋出異常。df =火花。createDataFrame (data =[(“1”、“2023061218154258”)(“2”,“20230612181542.58”)],模式= [“id”、“input_timestamp”]) df.printSchema() #時間戳字符串DateType 1。df。withColumn(“時間戳”,to_timestamp (“input_timestamp”,格式= ' yyyyMMddHHmmssSS ')),告訴df(截斷= False)。withColumn(“時間戳”,to_timestamp (“input_timestamp”,格式= ' yyyyMMddHHmmss.SS ')),告訴(截斷= False)

輸出:

+ - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | | id input_timestamp |時間戳| + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | 1 | 2023061218154258 |零| | 2 | 20230612181542.58 |零| + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | + | id input_timestamp |時間戳| + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -零| + | 1 | 2023061218154258 | | 2 | 20230612181542.58 | 2023-06-12 18:15:42.58 | + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

我試著用格式yyyyMMddHHmmssSS to_timestamp預計,它將字符串2023061218154258轉換成時間戳2023-06-12 18:15:42.58

當我改變

spark.conf.set (“spark.sql.legacy.timeParserPolicy”、“糾正”)

spark.conf.set (“spark.sql.legacy.timeParserPolicy”、“遺產”)問題是解決了,但我不想使用遺留模式(因為它給其他問題)。

1回複1

Vidula_Khanna
主持人
主持人

嗨@Bas van den Berg

很高興認識你,謝謝你的問題!

看看你的同行在社區中有一個回答你的問題。謝謝。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map