gpt4 book ai didi

pyspark - 如何在 spark 中将时间戳列拆分为日期和时间

转载 作者:行者123 更新时间:2023-12-03 15:50:34 30 4
gpt4 key购买 nike

我想将时间戳值拆分为日期和时间。

例如:

1/20/2016 3:20:30 PM
1/20/2016 3:20:31 PM
1/20/2016 3:20:32 PM
1/20/2016 3:20:32 PM
1/20/2016 3:20:32 PM
1/20/2016 3:20:33 PM
1/20/2016 3:20:34 PM
1/20/2016 3:20:34 PM

需要拆分为 1/20/2016 和 3:20:30 PM

使用sql溢出函数我无法正确处理它
split_col = pyspark.sql.functions.split(df['ServerTime'], ' ')
df_date = df.withColumn('Date', split_col.getItem(0))
df_time = df.withColumn('Time', split_col.getItem(1))

任何帮助家伙????

最佳答案

由于日期和时间可以采用任何格式,正确的做法是将日期字符串转换为 Datetype() 并从中提取日期和时间部分。

让我们来看看下面的示例数据

server_times = sc.parallelize([('1/20/2016 3:20:30 PM',),
('1/20/2016 3:20:31 PM',),
('1/20/2016 3:20:32 PM',)]).toDF(['ServerTime'])

日期 时间 部分可以提取如下任何格式。
from pyspark.sql.functions import unix_timestamp, from_unixtime, date_format

df.select(unix_timestamp(df.ServerTime, 'm/d/yyyy h:m:ss a').alias('ut'))\
.select(from_unixtime('ut').alias('dty'))\
.select(date_format('dty', 'M/d/yyyy').alias('Date'),
date_format('dty', 'h:m:s a').alias('Time'))\
.show()

+---------+----------+
| Date| Time|
+---------+----------+
|1/20/2016|3:20:30 PM|
|1/20/2016|3:20:31 PM|
|1/20/2016|3:20:32 PM|
+---------+----------+

如果需要,您可以将这两个投影到单独的数据帧中。

关于pyspark - 如何在 spark 中将时间戳列拆分为日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42906069/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com