Python PySpark:从日期列中减去整数列错误:列对象不可调用

Python PySpark:从日期列中减去整数列错误:列对象不可调用,python,date,pyspark,integer,subtraction,Python,Date,Pyspark,Integer,Subtraction,我正在使用PySpark。我有一列是日期数据类型列,另一列是整数数据类型列 见下面的示例: date subtract 2019-01-08 7 2019-01-04 2 我想创建一个名为“new_date”的新列,从“date”列中减去“subtract”列值 下面是我想要的输出: date subtract new_date 2019-01-08 7 2019-01-01 2019-01-04 2 20

我正在使用PySpark。我有一列是日期数据类型列,另一列是整数数据类型列

见下面的示例:

date         subtract
2019-01-08   7
2019-01-04   2
我想创建一个名为“new_date”的新列,从“date”列中减去“subtract”列值

下面是我想要的输出:

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”对象不可调用

df.withColumn("new_date", F.expr("date_sub(date, subtract)"))

可能的副本有关详细信息,请参阅链接的副本。简而言之:您不能使用列值作为API函数的参数,但一种解决方法是使用
pyspark.sql.functions.expr
例如:
df=df.withColumn(“new_date”,F.expr(“date_sub(date,subtract)”)