基于非零值的PySparkDataframe列标题concat

基于非零值的PySparkDataframe列标题concat,dataframe,pyspark,Dataframe,Pyspark,上面是我想要的输入输出,如下所示 +------+-----+------+-------------------+--------------------+----------+ |Manfr| prodid|region| absprice33| absprice27|absprice29| +-----+----- +------+-------------------+------------------ +----------+ | abc| 4

上面是我想要的输入输出,如下所示

+------+-----+------+-------------------+--------------------+----------+
|Manfr|  prodid|region|         absprice33|        absprice27|absprice29|
+-----+-----  +------+-------------------+------------------ +----------+
|  abc|   47   |    US|-0.6015412046017017|1.2074692228904986| 0        |
+------+-----  +------+-------------------+------------------+----------+
|  bcd|   47   |    US|-0.6015412046017017| 0                |1.204986  |
+------+-----  +------+-------------------+------------------+----------+
如果值不等于0,我想联系列名。请注意,对于Manfr | prodid |区域组合,行是唯一的/没有DUP

您能否帮助使用pyspark数据框vars=['abs1','abs2']#dynamic columns aggrest=[func.when(func.col(colname)!=0,func.concat_ws('-',colname))作为vars中的colname]DF=DF.withColumn(“new_col”,*aggrest)”类型错误:withColumn()接受3个位置参数,但有4个参数给出了“我可以尝试使用我不想要的PAND,我可以在pyspark dataframevars=['abs1','abs2'].#动态列aggrest=[func.when(func.col(colname)!=0,func.concat_ws('-',colname)),对于vars中的colname]DF=DF.withColumn(“new_col”,*aggrest)“TypeError:withColumn()接受3个位置参数,但给出了4个”我可以尝试使用我不想要的PAND,有什么方法可以在pyspark dataframe中实现吗
Manfr|  prodid|region| new_col
  abc|   47   |    US| absprice33, absprice27
  bcd|   47   |    US| absprice33, absprice29