gpt4 book ai didi

python - 如何找到 RDD 的最小值和最大值

转载 作者:行者123 更新时间:2023-12-01 07:56:18 26 4
gpt4 key购买 nike

我的RDD采用以下格式

RDD1=[['2','1','3','4'],['1','2','3','4'],['5','3','4','1']....['1','3','4','5']]

RDD1=[('2','1','3','4'),('1','2','3','4'),('5','3','4','1')....('1','3','4','5')]

我想要找到跨列的最小/最大的o/p作为

RDD_OUT_MAX=[('5','3','4'...'5')]

RDD_OUT_Min=[('1','1','3'...'1')]

我们如何使用Pyspark代码实现,我们可以使用任何map/reduce来查找MIN/Max。请帮助

rdd=df1.rdd.map(list)
rdd=df1.rdd.map(tuple)

我尝试过以下方法,但没有成功

rdd1.min()
rdd1.max()

最佳答案

您可以使用reduce()方法。试试这个:

>>> rdd.reduce(lambda x,y:
(min(x[0],y[0]),min(x[1],y[1]),min(x[2],y[2]),min(x[3],y[3])))
(1, 1, 3, 1)
>>> rdd.reduce(lambda x,y: (max(x[0],y[0]),max(x[1],y[1]),max(x[2],y[2]),max(x[3],y[3])))
(5, 3, 4, 5)

它对整个 rdd 中元组的每个条目进行成对的最小/最大检查。

稍短但更难阅读:

>>> rdd.reduce(lambda x,y: tuple(map(min, zip(x,y))))
(1, 1, 3, 1)
>>> rdd.reduce(lambda x,y: tuple(map(max, zip(x,y))))
(5, 3, 4, 5)

你可以把它想象成这样扩展:

lambda x,y: tuple(map(max, zip(x,y))) =
lambda x,y: tuple(map(max, [(x[0],y[0]),(x[1],y[1]),(x[2],y[2]),(x[3],y[3])]) =
lambda x,y: tuple([max(x[0],y[0]),max(x[1],y[1]),max(x[2],y[2]),max(x[3],y[3])]) =
lambda x,y: (max(x[0],y[0]),max(x[1],y[1]),max(x[2],y[2]),max(x[3],y[3]))

实际上,它使用生成器,这就是为什么最终的 tuple()是需要的。

关于python - 如何找到 RDD 的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55963759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com