修改RDD的密钥

时间:2014-12-01 08:48:32

标签: join key apache-spark rdd

我的RDD属于以下结构 -

Key| Val1   |Val2  |
314 | 850   |10468.714
315 | 850   |20468.714
316 | 873   |14630.532
317 | 676   |21450.78
318 | 475   |23247.512
319 | 850   |10468.714
320 | 850   |10468.714
321 | 850   |20468.714
322 | 873   |14630.532
323 | 676   |21450.78
324 | 475   |23247.512

我使用一些偏移值运行两个过滤操作 -

过滤Op1:

偏移= 0且时间范围从320到324

所有具有从(320-0)到(324-0)的值的键都被过滤

FilteredRDD1:

Key| Val1   |Val2  |
320 | 850   |10468.714
321 | 850   |20468.714
322 | 873   |14630.532
323 | 676   |21450.78
324 | 475   |23247.512

过滤Op2:

偏移= 6,时间范围从320到324

具有从(320-6):314到(324-6):318的值的所有密钥被过滤

FilteredRDD2:

Key| Val1   |Val2  |
314 | 850   |10468.714
315 | 850   |20468.714
316 | 873   |14630.532
317 | 676   |21450.78
318 | 475   |23247.512

操作

我希望将FilteredRDD1中的Val1与FilteredRDD2中的Val2相乘。

我可以想到一个选项,其中 -

  1. 使用偏移量修改FilteredRDD2的键,以使两个FilteredRDD的键相同

  2. 对未修改的FilteredRDD和修改后的FilteredRDD进行连接

  3. 对已连接的RDD执行地图操作,并将Val1与Val2相乘

  4. 任何其他更好的选择,以便更少的改组和更少的中间操作。

    TIA!

0 个答案:

没有答案