У меня есть столбец в моем Dataframe timestamp , который содержит UNIX 13-di git timestamp следующим образом:
| timestamp |
| ------------- |
| 1584528257638 |
| 1586618807677 |
| 1585923477767 |
| 1583314882085 |
С pandas это довольно легко чтобы преобразовать его следующим образом:
ms = pd.to_datetime(df[column], unit='ms')
df[column] = ms
Однако в pySpark это не так просто, и я нашел несколько других, таких как этот пост , пытающихся достичь этой цели. Конкатенация последних миллисекунд не работает для меня, она всегда дает вторую метку времени (ЧЧ: мм: сс) вместо ЧЧ: мм: сс.ССС.
То, что я до сих пор пробовал, было:
df = df.withColumn("unix_timestamp", F.unix_timestamp(df.timestamp,'yyyy-MM-dd HH:mm:ss.SSS z') + F.substring(df.timestamp, -3,3).cast('float')/1000)
df = df.withColumn("ms_Timestamp", F.to_timestamp(df["unix_timestamp"]))
К сожалению, это не преобразовало его в метку времени в миллисекундах, и я понятия не имею, что еще делать.
Буду признателен за любую помощь, чтобы наконец получить отметку времени в миллисекундах.
Всего наилучшего и заранее спасибо.