gpt4 book ai didi

apache-spark - 计算pyspark中两个日期之间的时间

转载 作者:行者123 更新时间:2023-12-04 04:24:26 25 4
gpt4 key购买 nike

希望这是相当基本的。我有一个包含日期列的 Spark 数据框,我想添加一个包含自该日期以来的天数的新列。谷歌福让我失望。

这是我尝试过的:

from pyspark.sql.types import *
import datetime
today = datetime.date.today()

schema = StructType([StructField("foo", DateType(), True)])
l = [(datetime.date(2016,12,1),)]
df = sqlContext.createDataFrame(l, schema)
df = df.withColumn('daysBetween',today - df.foo)
df.show()

它失败并出现错误:

u"cannot resolve '(17212 - foo)' due to data type mismatch: '(17212 - foo)' requires (numeric or calendarinterval) type, not date;"



我试过摆弄,但一无所获。我不能认为这太难了。任何人都可以帮忙吗?

最佳答案

好的,想通了

from pyspark.sql.types import *
import pyspark.sql.functions as funcs
import datetime
today = datetime.date(2017,2,15)

schema = StructType([StructField("foo", DateType(), True)])
l = [(datetime.date(2017,2,14),)]
df = sqlContext.createDataFrame(l, schema)
df = df.withColumn('daysBetween',funcs.datediff(funcs.lit(today), df.foo))
df.collect()

返回 [Row(foo=datetime.date(2017, 2, 14), daysBetween=1)]

关于apache-spark - 计算pyspark中两个日期之间的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42260961/

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