【发布时间】:2021-06-28 19:22:11
【问题描述】:
我正在尝试在 Pyspark 中将字符串转换为时间戳格式。
from pyspark.sql.types import DateType
df = spark.createDataFrame([('28/Mar/2021:06:29:54 -0700',)], ['dt'])
df.select(date_format('dt', 'd/M/y:h:m:s Z').alias('date')).collect()
这似乎不起作用,可能是因为 date_format 函数无法将其识别为有效格式。我明白了:
[行(日期=无)]
无论如何我可以让 pyspark 函数理解格式,做类似于 Python 中的 datetime 模块的事情吗?
from datetime import datetime
datetime.strptime('28/Mar/2021:06:29:54 -0700', '%d/%b/%Y:%H:%M:%S %z')
当我们传递格式时,它会创建一个有效的日期时间对象
datetime.datetime(2021, 3, 28, 6, 29, 54, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200)))
【问题讨论】:
标签: python apache-spark datetime pyspark apache-spark-sql