在保留最大列值行的同时删除重复项

时间:2019-05-31 12:12:18

标签: apache-spark pyspark

df1 = spark.createDataFrame([(1, "d", 20), (1, "d1", 21), (2, "p", 45),
                         (3, "r", 40), (1, "d2", 22), (2, "p1", 50)],
                        ["col1", "col2", "col3"])

输出:

+----+----+----+
|col1|col2|col3|
+----+----+----+
|   1|   d|  20|
|   1|  d1|  21|
|   2|   p|  45|
|   3|   r|  40|
|   1|  d2|  22|
|   2|  p1|  50|
+----+----+----+

最终输出:

+----+----+----+
|col1|col2|col3|
+----+----+----+
|   1|  d2|  22|
|   2|  p1|  50|
|   3|   r|  40|
+----+----+----+

一种可能的解决方案是先用col1col2ascending = false进行排序,然后再对drop_duplicate()进行排序。

这种方法在数据帧上进行多次传递,效率低下。

0 个答案:

没有答案