当前位置: 首页 > 知识库问答 >
问题:

PySpark reduceByKey只按一个键

荆树
2023-03-14

我有一个像这样的rdd

// Structure List[Tuple(x1, x2, value), Tuple(x1, x2, value)]
data = [('23', '98', 34), ('23', '89', 39), ('23', '12', 30), ('24', '12', 34), ('24', '14', 37), ('24', '16', 30)]
data = [('23', '89', 39), ('24', '14', 37)]

来自评论:

这是我尝试的:

max_by_group = (
    data.map(lambda x: (x[0], x))
        .reduceByKey(lambda x1, x2: max(x1, x2, key=lambda x: x[-1])) 
        .values()
)

共有1个答案

邵沛
2023-03-14

groupby第一个元素,然后通过元组中的第三个元素查找每个组的最大值:

(rdd.groupBy(lambda x: x[0])
    .mapValues(lambda x: max(x, key=lambda y: y[2]))
    .values()
).collect()
# [('24', '14', 37), ('23', '89', 39)]

或使用reducebykey:

(rdd.map(lambda x: (x[0], x))
    .reduceByKey(lambda x, y: x if x[2] > y[2] else y)
    .values()
).collect()
# [('24', '14', 37), ('23', '89', 39)]
 类似资料:
  • 我一直在努力解决这个问题。我正在尝试的是只显示下一个和上一个按钮。直到我得到 我不想要邮政的链接,我想要邮政的子页链接。我在一篇文章中使用多个页面。我正在使用分页符 nextpage注释功能

  • 我无法弄清楚每三个条目的like按钮是如何以及为什么被按下的,从我实际按下的like按钮开始,但(幸运的是)只有一个,而且也调用了正确的API。 请帮忙。

  • 问题内容: 这是django模板的一部分,它应该做的是打印出几个单选按钮,对应于分配给按钮的答案。但是我不知道为什么我可以检查多个单选按钮,这让我很困惑。它应该只允许我检查一个单选按钮,但是我以某种方式拥有它,但是我却丢失了它。有什么帮助吗?谢谢。 问题答案: 只需给他们起相同的名字:

  • 我没有找到任何解决方案,如何简单地排序原始数组。 我尝试了更多的解决方案,但都不起作用。我在这里也找到了一些解决方案,但没有一个解决方案可以同时使用更多的数组,最多使用2。 如果我只使用以下内容: 然后它只对arr3中的项进行排序,但其他数组中的其他项不适合。 出于某种原因,返回类型需要int而不是double。

  • 所以最基本的,我想做的是使用LWJGL让我的球员在比赛中移动。玩家当前正在移动,但当你按住按钮时,他没有继续移动。 更新的代码: 我的代码仍然有同样的问题,我开始认为是Keyboard.next()阻止了我按住按钮,而播放器仍然在移动。

  • 所以我有一个JavaFX应用程序,它包含一个按钮,应该可以打开DirectoryChooser onclick。当我触发它一次时,它会做它应该做的,非常好。我一关闭DirectoryChooser对话框,按钮就什么都不做了。我在网上搜索一些“事件重置”或类似的内容,因为我认为该事件可能仍处于“活动”状态,因此不再触发,但没有任何结果: 不知道这是完全错误的方法,还是我错过了一些重要的东西。我希望你