pyspark 将12小时格式的字符串时间值转换为24小时格式的时间

unguejic  于 2023-11-10  发布在  Spark
关注(0)|答案(1)|浏览(136)

时间值以字符串数据类型的形式存在于数据中,格式为12小时。需要将其转换为24小时格式的时间。粤ICP备05012333号-1
我试过使用date_format,也试过Pyspark: Convert String Datetime in 12 hour Clock to Date time with 24 hour clock (Time Zone Change),但它转换为null而不是正确的值。

irlmq6kh

irlmq6kh1#

你必须将字符串转换为日期时间,然后格式化它以仅保留时间部分。
这里有一个例子

spark.createDataFrame([('0123P',), ('0123A',)], ['timecol']). \
    withColumn('datetime', func.to_timestamp(func.concat('timecol', func.lit('M')), 'hhmma')). \
    withColumn('timeonly', func.date_format('datetime', 'HH:mm:ss')). \
    show()

# +-------+-------------------+--------+
# |timecol|           datetime|timeonly|
# +-------+-------------------+--------+
# |  0123P|1970-01-01 13:23:00|13:23:00|
# |  0123A|1970-01-01 01:23:00|01:23:00|
# +-------+-------------------+--------+

字符串

相关问题