A transformação Drop Duplicates remove linhas da sua fonte de dados, oferecendo duas opções. Você pode optar por remover a linha duplicada que é completamente igual ou escolher os campos a serem correspondentes e remover somente as linhas com base nos campos escolhidos.
Por exemplo, nesse conjunto de dados, você tem linhas duplicadas em que todos os valores em algumas linhas são exatamente iguais aos de outra linha e alguns dos valores nas linhas são iguais ou diferentes.
Linha | Nome | Idade | State | Observação | |
---|---|---|---|---|---|
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 | esta é uma linha duplicada e corresponde completamente a todos os valores da linha #4 |
7 | Rose | rose@gmail | 23 | NJ | Esta é uma linha duplicada e corresponde completamente a todos os valores da linha #5 |
Se você optar por combinar linhas inteiras, as linhas 6 e 7 serão removidas do conjunto de dados. O conjunto de dados agora é:
Linha | Nome | Idade | State | |
---|---|---|---|---|
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 |
Se você optar por especificar as chaves, poderá optar por remover as linhas que coincidem em 'nome' e 'e-mail'. Isso oferece um controle mais preciso do que é uma “linha duplicada” para seu conjunto de dados. Ao especificar 'nome' e 'e-mail', o conjunto de dados agora é:
Linha | Nome | Idade | State | |
---|---|---|---|---|
1 | Joy | joy@gmail | 33 | NY |
2 | Tim | tim@gmail | 45 | OH |
3 | Rose | rose@gmail | 23 | NJ |
Tenha em mente que:
-
Para que as linhas sejam reconhecidas como duplicadas, os valores diferenciam maiúsculas de minúsculas. Todos os valores nas linhas precisam ter a mesma letra maiúscula e minúscula - isso se aplica a qualquer opção escolhida (Combinar linhas inteiras ou Especificar chaves).
-
Todos os valores são lidos como cadeias de caracteres.
-
A transformação Drop Duplicates utiliza o comando dropDuplicates do Spark.
-
Ao usar a transformação Drop Duplicates, a primeira linha é mantida e as outras linhas são descartadas.
-
A transformação Drop Duplicates não altera o esquema do dataframe. Se você optar por especificar as chaves, todos os campos serão mantidos no dataframe resultante.