如何在when条件中写入if条件- PySpark

hfwmuf9z  于 2023-01-05  发布在  Apache
关注(0)|答案(1)|浏览(182)

我试图在F中添加一个if条件。当在pyspark列中时,我的代码:

df = df.withColumn("column_fruits",F.when(F.col('column_fruits') == "Berries"
if("fruit_color")==  "red": 
   return "cherries" 
elif("fruit_color") == "pink": 
   return "strawberries"
else:
   return "balackberries").otherwise("column_fruits")

我想先过滤掉浆果,然后根据颜色改变水果的名字。剩下的水果都保持不变。谁能告诉我这是不是写withColumn代码的有效方法?

c9qzyr3d

c9qzyr3d1#

这样就行了

df.withColumn("column_fruits", F.when((F.col('column_fruits') == "Berries") & (F.col('fruit_color') == "red"), "cherries")\
          .when((F.col('column_fruits') == "Berries") & (F.col('fruit_color') == "pink"), "strawberries")\
          .otherwise("blackberries"))\
          .show()

样品输入/输出:

相关问题