假设我有以下代码:
df = df \
.withColumn('this_month_sales', df.units * df.rate) \
.withColumn('this_year_sales_v1', df.this_month_sales + df.sales_till_last_month) \
.withColumn('this_year_sales_v2', F.col('this_month_sales') + df.sales_till_last_month)
在这个代码中,
公式 this_year_sales_v1
会导致失败 this_month_sales
列不存在或不是属性或类似的内容。
公式 this_year_sales_v2
会有用的
为什么呢?他们本质上不是在做同样的事情吗?
1条答案
按热度按时间lvmkulzt1#
因为在第三行
this_month_sales
原始列中不存在列df
. 它只在第二行中创建,但是df
变量尚未更新。如果你这样做
那么它应该会起作用,因为
this_month_sales
列现在是的属性df
当第二行运行时。一般来说,我更喜欢使用
F.col
为了防止这种问题。