Jar*_*red 1 apache-spark apache-spark-sql pyspark pyspark-sql
我有一个PySpark数据框,在列中包含时间戳(调用列'dt'),如下所示:
2018-04-07 16:46:00
2018-03-06 22:18:00
Run Code Online (Sandbox Code Playgroud)
当我执行:
SELECT trunc(dt, 'day') as day
Run Code Online (Sandbox Code Playgroud)
...我期望:
2018-04-07 00:00:00
2018-03-06 00:00:00
Run Code Online (Sandbox Code Playgroud)
但我得到了:
null
null
Run Code Online (Sandbox Code Playgroud)
我如何截断到一天而不是一小时?
hi-*_*zir 10
你使用错误的功能.trunc仅支持几种格式:
返回截断为格式指定单位的日期.
:param格式:'year','yyyy','yy'或'month','mon','mm'
date_trunc改为使用:
返回截断为格式指定单位的时间戳.
:param格式:'year','yyyy','yy','month','mon','mm','day','dd','hour','minute','second','week ', '25美分硬币'
例:
from pyspark.sql.functions import col, date_trunc
df = spark.createDataFrame(["2018-04-07 23:33:21"], "string").toDF("dt").select(col("dt").cast("timestamp"))
df.select(date_trunc("day", "dt")).show()
# +-------------------+
# |date_trunc(day, dt)|
# +-------------------+
# |2018-04-07 00:00:00|
# +-------------------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6050 次 |
| 最近记录: |