问题描述
我具有bigint格式的visit_start_time_gmt字段,可以将其转换为date_time,但是现在我需要在另一列中删除时间戳记的时间部分,请参见下面的数据示例
解决方法
如果要截断时间,请使用date_trunc()
函数。
- 如果要转换为日期,请使用
to_date
()函数。
Example:
df.show()
#+--------------------+
#|visit_start_time_gmt|
#+--------------------+
#| 1522555602|
#| 1522622390|
#+--------------------+
from pyspark.sql.functions import *
df.withColumn("date_hour",date_trunc("HOUR",to_timestamp(col("visit_start_time_gmt")))).\
withColumn("date",to_date(to_timestamp(col("visit_start_time_gmt")))).\
show()
+--------------------+-------------------+----------+
|visit_start_time_gmt| date_hour| date|
+--------------------+-------------------+----------+
| 1522555602|2018-04-01 04:00:00|2018-04-01|
| 1522622390|2018-04-01 22:00:00|2018-04-01|
+--------------------+-------------------+----------+