Display()不能正確顯示微秒

使用show()以微秒精度顯示時間戳值。Display()的精度限製在毫秒。

寫的harikrishnan.kunhumveettil

最後發布日期:2022年5月16日

問題

您希望以微秒精度顯示時間戳值,但是當您使用顯示()它不會顯示超過毫秒的值。

例如,這個Apache Spark SQL顯示()命令:

% sql顯示(火花。sql("select cast('2021-08-10T09:08:56.740436' as timestamp) as test")

返回一個截斷後的值:

2021 - 08 - 10 - t09:08:56.740 + 0000

導致

在呈現輸出之前,DataFrame會在內部轉換為HTML。

這將顯示結果限製在毫秒級精度。

它不會影響存儲的值。

解決方案

你應該使用顯示()而不是使用顯示()

例如,這個Apache Spark SQL顯示()命令:

% sql火花。sql("select cast('2021-08-10T09:08:56.740436' as timestamp) as test").show(truncate=False)

返回正確的值:

2021-08-10 09:08:56.740436

作為一種替代方法,您可以創建第二個列並將值作為字符串複製到該列。

轉換為字符串後,顯示()顯示完整值。

這篇文章有用嗎?