我编写了一个PySpark代码,用于设置这样一个条件:如果给定列中存在null值,那么它会将“Yes”附加到另一列,否则为“No”
data = data.withColumn('Coupon_code',when((data.coupon ==""),"No coupon").otherwise("coupon"))
此处的条件是,如果“优惠券”列中有空值,则在优惠券代码列中附加“无优惠券”,否则为“优惠券”
上述逻辑的问题在于它没有检测到空值并用“优惠券”填充每个条目
我尝试使用isisnull()
和subset
,但没有效果
data=data.withColumn(‘优惠券编码’),当(data.fillna(“无优惠券”,子集[‘优惠券’))时。否则(“优惠券”))
对于is null(),我得到的错误是column is not callable
。请告诉我哪里出了问题
样本数据:
I/p:
Coupon
null
null
null
null
H45X
E4R
null
预期o/p:
Coupon Coupon_code
null No Coupon
null No Coupon
null No Coupon
null No Coupon
H45X coupon
E4R coupon
null No Coupon
即使计数也能工作,但同样的方法也无法替代它
data.where(col("coupon").isNull()).count()
output: 9064
如果下面的代码适合您,请尝试一下?它应该捕获列优惠券为null或为空字符串的两种情况
相关问题 更多 >
编程相关推荐