python-3.x - pyspark中基于rdd的操作中键值的最大值
问题描述
我是基于 rdd 的操作的新手。我试图了解键值的最大值。我有一个这样的rdd:
RDD = sc.parallelize([("A", 2, 1), ("C", 8, 5), ("B", 3, 4), ("A", 7, 5), ("C", 5, 8), ("C", 6, 10), ("B", 10, 6)])
我必须根据键找到第二个元素的最大值。我想看到这样的输出;
("A", 7, 5)
("B", 10, 6)
("C", 6, 10)
我试过了newrdd = RDD.reduceByKey(lambda x: max(x[2]))
。它输出一些错误。
解决方案
无论如何,如果有人需要,我首先得到了配对的 rdd。
pairedrdd = RDD.map(lambda x: (x[0], x[2]))
然后newrdd = pairedrdd.reduceByKey(lambda x, y: max(x,y))
lis = newrdd.collect()
for i in lis:
print(i)
推荐阅读
- javascript - Typescript中继承的父类中的参数是什么?
- c++ - 在命名空间之外包含标头
- python - 从文本中删除时间线(继续没有时间线的文本)
- drake - 如何防止重力加速地平面?
- c# - Unity 中的无尽奔跑者
- java - 无法在浏览器上下载文件文档?
- javascript - 笑话/酶 | 无法解析 data-test="basic-render"
- reactjs - 如何在 React Native 中没有打开选项卡的组件类中显示选项卡栏
- visual-studio-2010 - 无法在 Visual Studio 2013/2010 中调试经典 asp 代码
- css - 更改清晰度切换开关的颜色