如何在Spark(Scala)中组合两个RDD?

时间:2017-03-31 23:34:29

标签: scala apache-spark

所以,让我们说我有以下两个RDDS: (这些只是每个RDD的前几行)

RDD1:

Time                   Temp 
2014-08-12 13:20:00    22
2014-08-12 13:21:00    24
2014-08-12 13:24:00    26
2014-08-12 13:26:00    27
2014-08-12 13:28:00    22

RDD2:

Time                   Age 
2014-08-12 13:20:00    45
2014-08-12 13:21:00    45
2014-08-12 13:24:00    46
2014-08-12 13:26:00    37
2014-08-12 13:28:00    122

我想将它们组合起来,以便将RDD2列添加到RDD1中。我不能使用union,因为这只会将RDD2添加到RDD1的底部,而我想将它添加到" side",如果这有意义的话。

1 个答案:

答案 0 :(得分:5)

import itertools as it def f1(): return 1 def f2(): return 2 def f3(): return 3 functionList = [f1, f2, f3] fsets = set([]) for num in range(1, len(functionList)+1): for combo in it.combinations(functionList, num): fsets.add(combo) for fc_combo in fsets: temp = 0 for f in fc_combo: temp += f() print temp 会让您并排加入这些join""来自文档:

" 当调用类型为(K,V)和(K,W)的数据集时,返回(K,(V,W))对的数据集以及每个键的所有元素对。通过leftOuterJoin,rightOuterJoin和fullOuterJoin支持外连接。"