如何基于其他列pyspark Df选择不同的列?

时间:2018-10-25 14:47:52

标签: python apache-spark pyspark apache-spark-sql pyspark-sql

我的Df如下所示,我想确定输入1和输入2具有最高价格的不同列。

+-------+-------+-----+
|Input1 |Input2 |Price |
+-------+-------+-----+
|A      |    a1 | 10  |
|B      |    a1 | 8   |
|B      |    b1 | 8   |
|B      |    c1 | 8   |
|C      |    c1 | 8   |
|C      |    b1 | 9   |
|C      |    c1 | 10  |
|D      |    c1 | 8   |
|D      |    b1 | 9   |
|D      |    e1 | 10  |
+-------+-------+-----+

示例:Input1(A)和Input2(a1),其价格为10,那么我们应该修复此组合。(因为我们没有其他与A的组合,所以它是高度组合。

下一个最高价格是C,c1组合是10,因此我们必须选择C和c1。

下一个输入1为B,输入2 (a1,b1,c1)的组合具有相同的价格8。在这种情况下,我们必须取任意一个,但我们已经将a1作为A1的组合。因此,我们不应该再取a1 。我们可以选择其他(即b1,c1),我们可以选择(b1,c1)利率8,但是c1具有最高的C和C1价格组合,因此我们需要选择b1和B。

我的预期输出是:

+-------+-------+-----+
|Input1 |Input2 |rate |
+-------+-------+-----+
|A      |    a1 | 10  |
|C      |    c1 | 10  |
|B      |    b1 | 8   |
|D      |    e1 | 10  |
+-------+-------+-----+

0 个答案:

没有答案