首页 > 解决方案 > 如何从 pyspark pr sparksql 中的 date_time 捕获时间部分?

问题描述

我有 bigint 格式的域 visit_start_time_gmt,我能够将其转换为 date_time,但现在我需要删除另一列中时间戳的时间部分,请参阅下面的数据示例

在此处输入图像描述

标签: dataframepysparkapache-spark-sqldatabricks

解决方案


如果要截断时间,请使用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|
+--------------------+-------------------+----------+

推荐阅读