【发布时间】:2020-05-13 17:04:15
【问题描述】:
我有一个 PySpark 列,其中包含这样的列表列表的值
row 1: [['01', '100.0'], ['01', '400.0'], [None, '0.0'], ['06', '0.0'], ['01', '300'], [None, '0.0'], ['06', '200.0']]
row 2: [[None, '200.0'], ['06', '300.0'], ['01', '500'], ['06', '100.0'], ['01', '200'], ['07', '50.0']]
我需要比较列表列表中具有相同第一个元素的元素,并过滤掉每对中具有最大第二个元素的数组。虽然数组的第一个元素可能有不同的代码,但我想过滤掉包含 '01' 、 '06' 或 '07' 的数组元素,并在我的数据框中添加两列。
所以上面示例行的结果如下所示:
[['01', '400.0'], ['06', '200.0'], ['07':'0']
[['01', '500.0'], ['06', '300.0'], ['07':'50']
最有效的方法是什么?
【问题讨论】:
-
你能发布你到目前为止尝试过的代码吗?
-
我可以假设将提供要添加 max_01、max_06、max_07 的列列表,还是我必须从列表列表中确定?
-
我们可以为01、06和07这三个代码做一个withColumn。
标签: python apache-spark pyspark