我在pyspark中有一个 Dataframe ,其中包含time1和time2列,它们都显示为如下所示的字符串:
Time1 Time2
1990-03-18 22:50:09.693159 2022-04-23 17:30:22-07:00
1990-03-19 22:57:09.433159 2022-04-23 16:11:12-06:00
1990-03-20 22:04:09.437359 2022-04-23 17:56:33-05:00
我正在尝试将这些转换为时间戳(最好是UTC)我正在尝试下面的代码:
Newtime1 = Function.to_timestamp(Function.col('time1'),'yyyy-MM-dd HH:mm:ss.SSSSSS')
Newtime2 = Function.to_timestamp(Function.col('time2'),'yyyy-MM-dd HH:mm:ss Z')
当应用于如下 Dataframe 时:
mydataframe = mydataframe.withColumn('time1',Newtime1)
mydataframe = mydataframe.withColumn('time2',Newtime2)
这将在数据中显示“None”。如何获得所需的时间戳?
2条答案
按热度按时间jogvjijk1#
时区的格式有点棘手。Read the docs carefully。
1.* “模式字母的数量决定格式。"*
1.而且
X
与x
与Z
之间存在差异。...
l5tcr1uw2#
对于col 'time2',模式如下所示:
在Pyspark v3.2.3中测试,在进行上述变更后,两者均正常工作。