gpt4 book ai didi

apache-spark - 如何将时间戳类型的 PySpark 数据帧截断到当天?

转载 作者:行者123 更新时间:2023-12-03 17:43:35 25 4
gpt4 key购买 nike

我有一个 PySpark 数据框,其中包含一列中的时间戳(称为“dt”列),如下所示:

2018-04-07 16:46:00
2018-03-06 22:18:00

当我执行:

SELECT trunc(dt, 'day') as day

...我期望:
2018-04-07 00:00:00
2018-03-06 00:00:00

但我得到了:
null
null

如何截断到天而不是小时?

最佳答案

你使用了错误的功能。 trunc supports only a few formats :

Returns date truncated to the unit specified by the format.

:param format: 'year', 'yyyy', 'yy' or 'month', 'mon', 'mm'



使用 date_trunc instead :

Returns timestamp truncated to the unit specified by the format.

:param format: 'year', 'yyyy', 'yy', 'month', 'mon', 'mm', 'day', 'dd', 'hour', 'minute', 'second', 'week', 'quarter'



例子:

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|
# +-------------------+

关于apache-spark - 如何将时间戳类型的 PySpark 数据帧截断到当天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49947962/

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