【发布时间】:2021-02-08 19:27:10
【问题描述】:
我正在尝试将字符串列转换为 Timestamp 列,格式为:
| c1 | c2 |
|---|---|
| 2019-12-10 10:07:54.000 | 2019-12-13 10:07:54.000 |
| 2020-06-08 15:14:49.000 | 2020-06-18 10:07:54.000 |
from pyspark.sql.functions import col, udf, to_timestamp
joined_df.select(to_timestamp(joined_df.c1, '%Y-%m-%d %H:%M:%S.%SSSS').alias('dt')).collect()
joined_df.select(to_timestamp(joined_df.c2, '%Y-%m-%d %H:%M:%S.%SSSS').alias('dt')).collect()
当日期改变时,我想要一个新的列日期差减去 c2-c1
在 python 中我正在这样做:
df['c1'] = df['c1'].fillna('0000-01-01').apply(lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S.%f'))
df['c2'] = df['c2'].fillna('0000-01-01').apply(lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S.%f'))
df['days'] = (df['c2'] - df['c1']).apply(lambda x: x.days)
谁能帮忙转换成pyspark?
【问题讨论】:
-
这能回答你的问题吗? Convert pyspark string to date format
-
我得到 dt= None
-
我使用了相同的格式,我不知道几秒后我有 .000
标签: apache-spark pyspark apache-spark-sql timestamp pyspark-dataframes