Pyspark 删除数据帧中的重复列

Pyspark 删除数据帧中的重复列,pyspark,pyspark-sql,Pyspark,Pyspark Sql,我知道这似乎是一个非常简单的问题,我已经搜索了谷歌和stackoverflow,但找不到确切的我需要的 我使用以下代码将一个数据帧config中的一些数据聚合到另一个config1。代码的基础由另一名stackoverflow成员提供谢谢@Sunny Shukla exprs=map(lambda c: max(c).alias(c), config.columns) config1=config.groupBy(["seq_id","tool_id"])\ .agg(f.count(f.lit

我知道这似乎是一个非常简单的问题,我已经搜索了谷歌和stackoverflow,但找不到确切的我需要的

我使用以下代码将一个数据帧
config
中的一些数据聚合到另一个
config1
。代码的基础由另一名stackoverflow成员提供谢谢@Sunny Shukla

exprs=map(lambda c: max(c).alias(c), config.columns)
config1=config.groupBy(["seq_id","tool_id"])\
.agg(f.count(f.lit(1)).alias('count'),
     *exprs).where('count = 1').drop('count')
config
dataframe有20列,
config1
df有22列,因为我使用了2列
seq\u id
tool\u id
对其进行了分组,但映射了整个原始列以保留原始列名(我确信有一种更优雅的方法可以做到这一点) 因此,生成的数据帧
config1
具有重复的
seq_id
tool_id
列。如果我这样做
config1.drop('seq_id','tool_id')
然后它删除了4列,最后我得到了18列,而不是20列。 有没有一种更优雅的方法可以在不编写UDF的情况下实现这一点?
谢谢您

如果您使用。请选择并指定您想要的20列,这样做有效吗?您在此查询中到底想做什么?似乎您正试图删除任何具有seq_id和tool_id且超过1行的行。在这种情况下,为什么不从代码中删除
,*expr
,完成同样的事情呢?