Python PySpark:从日期列中减去整数列错误:列对象不可调用
Posted
技术标签:
【中文标题】Python PySpark:从日期列中减去整数列错误:列对象不可调用【英文标题】:Python PySpark: Subtract Integer Column from Date Column Error: Column Object not Callable 【发布时间】:2019-01-17 17:46:10 【问题描述】:我正在使用 PySpark。我有一列是日期数据类型列,另一列是整数数据类型列。
参见下面的示例:
date subtract
2019-01-08 7
2019-01-04 2
我想创建一个名为“new_date”的新列,它从“日期”列中减去“减去”列值。
下面是我想要的输出:
date subtract new_date
2019-01-08 7 2019-01-01
2019-01-04 2 2019-01-02
我试过下面的代码:
df = df.withColumn('new_date', F.date_sub(df.date, df.subtract))
以下是我得到的错误:TypeError: 'Column' object is not callable
【问题讨论】:
Using a column value as a parameter to a spark DataFrame function的可能重复 查看链接的骗局了解详情。简而言之:您不能将列值用作 API 函数的参数,但一种解决方法是使用pyspark.sql.functions.expr
,例如:df = df.withColumn("new_date", F.expr("date_sub(date, subtract)"))
【参考方案1】:
试试这个:
df.withColumn("new_date", F.expr("date_sub(date, subtract)"))
【讨论】:
以上是关于Python PySpark:从日期列中减去整数列错误:列对象不可调用的主要内容,如果未能解决你的问题,请参考以下文章