
[英]pyspark date_format() and hour() converting timestamp to localtime
[英]Convert filetime to localtime in pyspark
我有一個鑲木地板文件,其中包含如下所示的列
+--------------------+
| Start_Time |
+--------------------+
| 131696565231590000 |
| 131696565251590000 |
| 131726072567140000 |
| 131726073867090000 |
| 131726076586810000 |
| 131726079656940000 |
| 131726081667130000 |
| 131726085077090000 |
| 131726085207190000 |
+--------------------+
我需要閱讀此文件並將此列轉換為本地時間的日期時間列。 預期的 output 如下(我的當地時間是 IST):
+-------------------------+
| Start_Time |
+-------------------------+
| 2018-05-01 13:55:23.160 |
| 2018-05-01 13:55:25.160 |
| 2018-06-04 17:34:16.713 |
| 2018-06-04 17:36:26.710 |
| 2018-06-04 17:40:58.680 |
| 2018-06-04 17:46:05.693 |
| 2018-06-04 17:49:26.713 |
| 2018-06-04 17:55:07.710 |
| 2018-06-04 17:55:20.720 |
+-------------------------+
我嘗試單獨轉換時間戳,如下所示並為其添加 +5.30,但是在我讀取鑲木地板文件本身或之后可以使用更好的解決方案嗎?
datetime.fromtimestamp((131696565231590000 - 116444736000000000) // 10000000)
您可以使用from_utc_timestamp
並指定IST
時區:
df2 = df.selectExpr("""
from_utc_timestamp(
timestamp((Start_Time - 116444736000000000) / 10000000), 'IST'
) as Start_Time
""")
df2.show(truncate=False)
+-----------------------+
|Start_Time |
+-----------------------+
|2018-05-01 19:25:23.159|
|2018-05-01 19:25:25.159|
|2018-06-04 23:04:16.714|
|2018-06-04 23:06:26.709|
|2018-06-04 23:10:58.681|
|2018-06-04 23:16:05.694|
|2018-06-04 23:19:26.713|
|2018-06-04 23:25:07.709|
|2018-06-04 23:25:20.719|
+-----------------------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.