Pyspark-在RDD中的每个元素之间应用功能并将其保存到新的RDD

时间:2019-05-01 22:28:46

标签: pyspark

我对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。

我是走在正确的道路上吗,还是我应该以不同的方式考虑这样做? 感谢您的宝贵时间。

0 个答案:

没有答案