从日期和小时列创建时间戳 - Pyspark3
Create timestamp from Date and Hour columns - Pyspark3
我有一个 pyspark 数据框,其中包含我想从中创建时间戳的两列。
+----------+------------+
|start_date|daypart_hour|
+----------+------------+
|2019-09-17| 22|
|2019-09-17| 11|
|2019-09-17| 9|
+----------+------------+
daypart_hour 是从午夜到午夜的刻度,范围为 0-23。 0 个与午夜相关,23 个与晚上 11 点相关。
我很好奇如何制作这个……或类似的东西。
+----------+------------+---------------------+
|start_date|daypart_hour| start_dt_ts|
+----------+------------+---------------------+
|2019-09-17| 22|2019-09-17 10:00:00pm|
|2019-09-17| 11|2019-09-17 11:00:00am|
|2019-09-17| 9|2019-09-17 09:00:00am|
+----------+------------+---------------------+
每个日期总是有 0-23 小时。没有缺失值。
您可以使用date_format
、to_timestamp
和concat
得到想要的结果。有关日期时间字符的更多信息,请参阅 Java Simple Date format。
from pyspark.sql import functions as F
df.withColumn("start_dt_ts", \
F.date_format(F.to_timestamp(F.concat("start_date","daypart_hour"),"yyyy-MM-ddHH"),\
"yyyy-MM-dd hh:ss:SSa")).show(truncate=False)
#+----------+------------+---------------------+
#|start_date|daypart_hour|start_dt_ts |
#+----------+------------+---------------------+
#|2019-09-17|22 |2019-09-17 10:00:00PM|
#|2019-09-17|11 |2019-09-17 11:00:00AM|
#|2019-09-17|9 |2019-09-17 09:00:00AM|
#+----------+------------+---------------------+
我有一个 pyspark 数据框,其中包含我想从中创建时间戳的两列。
+----------+------------+
|start_date|daypart_hour|
+----------+------------+
|2019-09-17| 22|
|2019-09-17| 11|
|2019-09-17| 9|
+----------+------------+
daypart_hour 是从午夜到午夜的刻度,范围为 0-23。 0 个与午夜相关,23 个与晚上 11 点相关。
我很好奇如何制作这个……或类似的东西。
+----------+------------+---------------------+
|start_date|daypart_hour| start_dt_ts|
+----------+------------+---------------------+
|2019-09-17| 22|2019-09-17 10:00:00pm|
|2019-09-17| 11|2019-09-17 11:00:00am|
|2019-09-17| 9|2019-09-17 09:00:00am|
+----------+------------+---------------------+
每个日期总是有 0-23 小时。没有缺失值。
您可以使用date_format
、to_timestamp
和concat
得到想要的结果。有关日期时间字符的更多信息,请参阅 Java Simple Date format。
from pyspark.sql import functions as F
df.withColumn("start_dt_ts", \
F.date_format(F.to_timestamp(F.concat("start_date","daypart_hour"),"yyyy-MM-ddHH"),\
"yyyy-MM-dd hh:ss:SSa")).show(truncate=False)
#+----------+------------+---------------------+
#|start_date|daypart_hour|start_dt_ts |
#+----------+------------+---------------------+
#|2019-09-17|22 |2019-09-17 10:00:00PM|
#|2019-09-17|11 |2019-09-17 11:00:00AM|
#|2019-09-17|9 |2019-09-17 09:00:00AM|
#+----------+------------+---------------------+