

# 使用删除重复项
<a name="transforms-drop-duplicates"></a>

 删除重复项转换为您提供两个选项，从而从数据来源中移除行。您可以选择删除完全相同的重复行，也可以选择要匹配的字段，并根据所选字段仅删除这些行。

 例如，在此数据集中，您有重复的行，其中一些行中的所有值与另一行中的所有值完全相同，而行中的某些值相同或不同。


| 行 | 名称 | 电子邮件 | Age | 状态 | 注意 | 
| --- | --- | --- | --- | --- | --- | 
| 1 | Joy | joy@gmail | 33 | NY |  | 
| 2 | Tim | tim@gmail | 45 | OH |  | 
| 3 | Rose | rose@gmail | 23 | NJ |  | 
| 4 | Tim | tim@gmail | 42 | OH |  | 
| 5 | Rose | rose@gmail | 23 | NJ |  | 
| 6 | Tim | tim@gmail | 42 | OH | 这是一个重复的行，并且与所有值完全匹配，如行 \#4 | 
| 7 | Rose | rose@gmail | 23 | NJ | 这是一个重复的行，并且与所有值完全匹配，如行 \#5 | 

 如果您选择匹配整行，则第 6 行和第 7 行将从数据集中删除。现在的数据集为：


| 行 | 名称 | 电子邮件 | Age | 状态 | 
| --- | --- | --- | --- | --- | 
| 1 | Joy | joy@gmail | 33 | NY | 
| 2 | Tim | tim@gmail | 45 | OH | 
| 3 | Rose | rose@gmail | 23 | NJ | 
| 4 | Tim | tim@gmail | 42 | OH | 
| 5 | Rose | rose@gmail | 23 | NJ | 

 如果您选择指定键，则可以选择删除与“姓名”和“电子邮件”匹配的行。这使您可以更精细地控制数据集的“重复行”。通过指定“姓名”和“电子邮件”，数据集现在为：


| 行 | 名称 | 电子邮件 | Age | 状态 | 
| --- | --- | --- | --- | --- | 
| 1 | Joy | joy@gmail | 33 | NY | 
| 2 | Tim | tim@gmail | 45 | OH | 
| 3 | Rose | rose@gmail | 23 | NJ | 



 请记住以下事项：
+  为了将行识别为重复行，值区分大小写。行中的所有值都必须具有相同的大小写 — 这适用于您选择的任一选项（匹配整行或指定键）。
+  所有值都以字符串形式读入。
+  **删除重复项**转换使用 Spark dropDuplicates 命令。
+  使用**删除重复项**转换时，保留第一行并删除其他行。
+  **删除重复项**转换不会更改数据帧的架构。如果您选择指定键，则所有字段都将保留在生成的数据帧中。