我对Pyspark和分布式计算还比较陌生。
我有一个存储在RDD中的元组列表。我想将RDD中的每个元素组合在一起,并将其粘贴到一个函数中,该函数将返回该函数的输出,然后对该最终RDD执行一些描述性统计(最大值,最小值,均值,中位数等)。
在Python中本地执行此操作非常容易,但是我很难想到以分布式方式执行此操作的步骤。
myTups = [(a,b),(c,d),(e,f),(g,h)]
output_list = []
for i in range(len(myTups)-1):
for j in range(i+1, len(myTups)):
output_list += [myFunc(myTups[i],myTups[j])]
myFunc
输出一个整数。使用该整数列表,然后我将计算最大值,最小值等。
我认为我首先需要创建一个包含mytups的元组-元组列表。我需要将我的RDD转换为Pair RDD吗?
[ ((a,b), (c,d)),
((a,b),(e,f)),
((a,b), (g,h)),
((c,d),(e,f)),
((c,d), (g,h))
((e,f), (g,h))]
然后使用map()执行myFunc。
我是走在正确的道路上吗,还是我应该以不同的方式考虑这样做? 感谢您的宝贵时间。