当我在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的处理?
当我在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的处理?
有没有办法等待第一RDD的处理中,处理第二RDD
你有RDD之前,那么为什么你需要等待并从磁盘重新读取?
对RDD执行一些转换,在第一个操作中写入磁盘,然后继续使用相同的RDD执行第二个操作。
可能会做,但我需要在我的程序中进行更多的更改。 – pythonic
你可以显示一些代码,但是通过“第二个rdd”,我假设你的意思是它来自第一个代码 –
我想我明白你在哪里感到困惑。在单个RDD中,分区将相互平行运行。但是,两个RDD将依次运行(除非您另行编码)。
谁告诉你spark会尝试并行处理两个RDD?这是不正确的! – eliasah
所以这将被连续处理? – pythonic
是的!如果你已经测试过,你会知道的。 – eliasah