【问题标题】:ERROR: typeerror when() missing 1 required positional argument 'value' in PySpark错误:类型错误 when() 在 PySpark 中缺少 1 个必需的位置参数“值”
【发布时间】:2020-05-26 13:11:42
【问题描述】:

我在使用 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"))) 

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

非常感谢。

【问题讨论】:

    标签: pyspark databricks


    【解决方案1】:

    看看你的行尾:

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

    when function requires 一个条件一个值,但您只传递了一个条件。

    【讨论】:

    • .agg(F.count(F.when((df_vw_promodata_network_type.NonTargeted_count != 0) & (prog_hh_id.time_shifted_live ==1),df_vw_promodata_network_type.hh_id).otherwise(None)).alias("live_NonTargeted_reach")) 在这我得到类似的错误吗??
    • 从语法的角度来看,这看起来是正确的。请设置reproducible example 出现错误
    猜你喜欢
    • 2021-05-18
    • 2017-07-23
    • 1970-01-01
    • 2019-05-26
    • 2022-01-11
    • 2018-09-12
    • 2021-08-05
    • 2021-07-06
    相关资源
    最近更新 更多