当前位置: 首页 > 面试题库 >

从pyspark中的数据框中删除重复项

鲁鹏
2023-03-14
问题内容

我在本地弄乱了pyspark 1.4中的数据帧,并且在使dropplicates方法起作用时遇到了问题。不断返回错误"AttributeError: 'list' object has no attribute 'dropDuplicates'"。我不太确定为什么这样做,因为我似乎遵循最新文档中的语法。似乎我缺少该功能的导入。

#loading the CSV file into an RDD in order to start working with the data
rdd1 = sc.textFile("C:\myfilename.csv").map(lambda line: (line.split(",")[0], line.split(",")[1], line.split(",")[2], line.split(",")[3])).collect()

#loading the RDD object into a dataframe and assigning column names
df1 = sqlContext.createDataFrame(rdd1, ['column1', 'column2', 'column3', 'column4']).collect()

#dropping duplicates from the dataframe
df1.dropDuplicates().show()

问题答案:

这不是导入问题。您只是调用.dropDuplicates()了错误的对象。虽然类sqlContext.createDataFrame(rdd1,...)pyspark.sql.dataframe.DataFrame,但应用后.collect()为纯Python
list,列表不提供dropDuplicates方法。您想要的是这样的:

 (df1 = sqlContext
     .createDataFrame(rdd1, ['column1', 'column2', 'column3', 'column4'])
     .dropDuplicates())

 df1.collect()


 类似资料:
  • 我有2个数据帧,和,有一个列(和其他非重要的)。 我想在中删除包含已在中的电子邮件的行。 我该怎么做?

  • 问题内容: 我有一个包含两列的数据框,并且。在这种情况下,和的顺序并不重要;例如,我会考虑并将其重复。在熊猫中,从数据框中删除这些重复项的有效方法是什么? 理想情况下,输出将按column的值排序。 问题答案: 您可以在删除重复项之前对数据框的每一行进行排序: 如果您希望按列对结果进行排序:

  • 我想从熊猫数据框中完全删除重复的项目。例如,我有数据框: 我要做的是在列中查找唯一的值,并删除所有重复的项。。因此,最终产品将如下所示(注意已消失): 谢谢。

  • 问题内容: 有没有一种有效的方法使用python从此数据中删除重复的“ person_id”字段?在这种情况下,只需保持第一次出现。 应成为: 问题答案: 假设您的JSON是有效语法,并且您确实在请求帮助,因为您将需要执行以下操作 如果要始终保留第一次出现,则需要执行以下操作

  • 问题内容: 我需要从数据库中删除重复的行。我可以用简单的SQL查询吗?如果没有,请告诉我一些快速算法。 例子: 我需要删除ID为2的行(或3,无论如何,它们是相等的,但不能同时都是)。谢谢你的帮助 问题答案: 正如评论中指出的那样,如果连续出现三遍,则此操作将无效。您可以重复运行此(繁重的)查询,直到停止删除内容为止,或者等待更好的答案…

  • 我有一个数据框 我只想保留唯一的索引,因为索引1是重复的,我想删除它的第二个实例,我该怎么做?我想要我的结果