使用pyspark删除python列表中存在的重复记录

时间:2019-03-05 08:10:04

标签: python pyspark

我正在尝试查找和删除当前存储在YAML文件中的重复值。

到目前为止,我已经尝试过: df_input_file.drop_duplicates(self.duplicate_column_list)

duplicate_column_list = 'active_proposal_no,active_proposal_revision_no,agency_id,adv_id,network_code,mkt_type,budget_seq_nbr,mkt_year_code'

上面的列表是我从YAML文件中加载的。

尝试此操作时,我无法确定重复的记录。

还有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:1)

基本上,您的duplicate_column_list实际上不是列表,它是一列用逗号分隔的列字符串。您需要使用split函数来创建此列表。 drop_duplicates将此整体视为一列,因此您不会得到正确的结果。

以下是原始数据:-

duplicate_column_list  = 'active_proposal_no,active_proposal_revision_no,agency_id,adv_id,network_code,mkt_type,budget_seq_nbr,mkt_year_code'

使用拆分功能将其列出:-

duplicate_column_list  = 'active_proposal_no,active_proposal_revision_no,agency_id,adv_id,network_code,mkt_type,budget_seq_nbr,mkt_year_code'.split(",")

拆分将列出该列表:-

duplicate_column_list  = ['active_proposal_no','active_proposal_revision_no','agency_id','adv_id','network_code','mkt_type','budget_seq_nbr','mkt_year_code']

现在传递此列表以删除重复项:-

df_input_file.drop_duplicates(duplicate_column_list)