我知道这似乎是一个非常简单的问题,我已经为其搜索了Google和stackoverflow,但找不到我真正需要的东西。
我已使用以下代码将一些数据从一个数据帧config
聚合到另一个config1
中。该代码的基础由另一个stackoverflow成员Thank You @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
数据帧有20列,而config1
df有22列,因为我使用2列seq_id
和tool_id
将其分组,但将整个原始列映射到保留原始的列名(确保有一种更优雅的方法)
因此,结果数据帧config1
具有seq_id
和tool_id
的重复列。如果我做
config1.drop('seq_id','tool_id')
然后删除4列,而我最终得到18列而不是20列。
没有编写UDF的方法,还有更优雅的方法吗?
谢谢