【问题标题】:Add/Substract datetime in pyspark.pandas在 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)

【问题讨论】:

    标签: python pandas datetime pyspark databricks


    【解决方案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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      相关资源
      最近更新 更多