2017-02-05 51 views
-2

当我在Spark程序中触及资源限制时,我想将处理分成迭代,并将每次迭代的结果上传到HDFS,如下所示。如何在Spark中串行处理两个RDD?

do something using first rdd 
upload the output to hdfs 

do something using second rdd 
upload the output to hdfs 

但据我所知,Spark会尝试并行运行这两个。在处理第二个rdd之前是否有办法等待第一个rdd的处理?

+0

谁告诉你spark会尝试并行处理两个RDD?这是不正确的! – eliasah

+0

所以这将被连续处理? – pythonic

+3

是的!如果你已经测试过,你会知道的。 – eliasah

回答

0

有没有办法等待第一RDD的处理中,处理第二RDD

你有RDD之前,那么为什么你需要等待并从磁盘重新读取?

对RDD执行一些转换,在第一个操作中写入磁盘,然后继续使用相同的RDD执行第二个操作。

+0

可能会做,但我需要在我的程序中进行更多的更改。 – pythonic

+1

你可以显示一些代码,但是通过“第二个rdd”,我假设你的意思是它来自第一个代码 –

1

我想我明白你在哪里感到困惑。在单个RDD中,分区将相互平行运行。但是,两个RDD将依次运行(除非您另行编码)。

相关问题