在 pyspark.pandas 中添加/减去日期时间
Posted
技术标签:
【中文标题】在 pyspark.pandas 中添加/减去日期时间【英文标题】:Add/Substract datetime in pyspark.pandas 【发布时间】:2021-12-03 02:31:28 【问题描述】:我在使用 pyspark.pandas 计算日期时出错。 有没有办法用 pyspark.padnas 计算日期?
import pyspark.pandas
from datetime import timedelta
df = pd.DataFrame('year': [2015, 2016],
'month': [2, 3],
'day': [4, 5])
df = pd.to_datetime(df)
df + timedelta(days=3)
# this yield same error
df.add(timedelta(days=3))
这会产生这个错误TypeError: Addition can not be applied to datetimes.
下面的作品
df = df.to_pandas()
df + timedelta(days=3)
【问题讨论】:
【参考方案1】:根据火花文档:
pandas 用户可以通过调用 DataFrame.to_pandas() 访问完整的 pandas API。 pandas-on-Spark DataFrame 和 pandas DataFrame 类似。但是,前者是分布式的,而后者是在单机中的。相互转换时,数据在多台机器和单个客户端机器之间传输。
所以先将 spark 数据帧转换为 pandas 数据帧:
import pyspark.pandas
from datetime import timedelta
df = pd.DataFrame('year': [2015, 2016],
'month': [2, 3],
'day': [4, 5])
df = df.to_pandas() # here
df = df.to_datetime(df)
df + timedelta(days=3)
# this yield same error
df.add(timedelta(days=3))
【讨论】:
以上是关于在 pyspark.pandas 中添加/减去日期时间的主要内容,如果未能解决你的问题,请参考以下文章