首页 > 解决方案 > 错误:类型错误 when() 在 PySpark 中缺少 1 个必需的位置参数“值”

问题描述

使用 Pyspark 在数据块中运行数据帧时出现上述错误。我不知道如何解决这个问题以及我哪里出错了。代码如下:

df_inner_select = df_promodata_daypart.select(df_promodata_daypart.sub_master_id,df_promodata_daypart.sub_campaign_id,df_promodata_daypart.resolved_network,df_promodata_daypart.hh_id,df_promodata_daypart.type,df_df_promodata_daypart.localpromoadviewstarttime_min).alias("viewerbytype").groupby(df_promodata_daypart.sub_master_id,df_promodata_daypart.sub_campaign_id,df_promodata_daypart.resolved_network,df_promodata_daypart.hh_id,df_promodata_daypart.localpromoadviewstarttime_min).agg(F.sum(F.when(df_promodata_daypart.type=="NonTargeted",1).otherwise(0).alias("NonTargeted_count")),F.sum(F.when(df_promodata_daypart.type=="Targeted").alias("Targeted_count"))) 

而且在这里我需要获取数据框中提到的类型列的计数。谁能帮助我尽快解决这个问题?

提前非常感谢。

标签: pysparkdatabricks

解决方案


看看你的行的最后:

F.when(df_promodata_daypart.type=="Targeted")

when函数需要一个条件一个值,但您只传递了一个条件。


推荐阅读