[Code] cómo encontrar eliminar duplicados en Spark

La respuesta corta es

r = m.reduceByKey(lambda x,y: (x))

Pero consideremos la naturaleza conmutativa y asociativa de la función reduceByKey, asumamos los siguientes valores

  1. A
  2. B
  3. C
  4. E
  5. A
  6. A

Y asumamos que los datos pueden estar en diferentes nodos de un cluster de Hadoop

una posibilidad de ejecución puede ser 1 y 5 y su resultado evaluarlo con 6 para encontrar una sola versión de A

pero también puede suceder que se evalúe 5 y 6 y luego 1 para encontrar una sola versión de A

Esto nos lleva a un dilema en el momento de crear nuestros programas en Spark pq este modelo nos lleva a pensar más allá y resolver los problemas siempre pensando en este paradigma

De otra forma, esta es otra solución (créditos vaerek)

from pyspark.sql import Row
>>> df = sc.parallelize([ \
...     Row(name='Alice', age=5, height=80), \
...     Row(name='Alice', age=5, height=80), \
...     Row(name='Alice', age=10, height=80)]).toDF()
>>> df.dropDuplicates().show()
+---+------+-----+
|age|height| name|
+---+------+-----+
|  5|    80|Alice|
| 10|    80|Alice|
+---+------+-----+

>>> df.dropDuplicates(['name', 'height']).show()
+---+------+-----+
|age|height| name|
+---+------+-----+
|  5|    80|Alice|
+---+------+-----+

Espero sea de ayuda

FREDDY LEANDRO ANGARITA CASTELLANOS
Data platform MVP
@flacMVP

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *