是否有可能迭代地收集rdd的每个分区?

时间:2016-06-25 10:00:19

标签: mongodb apache-spark pyspark pymongo rdd

我有一个rdd,我需要存储在mongoDB中。

我尝试使用rdd.map将rdd的每一行写入mongoDB,使用pymongo。但我遇到了泡菜错误,因为它似乎不支持向工人腌制pymongo对象。

因此,我做一个rdd.collect()来获取驱动程序的rdd,并将其写入mongoDB。

是否可以反复收集rdd的每个分区?这将最大限度地减少驱动程序内存不足的变化。

1 个答案:

答案 0 :(得分:2)

是的,有可能。您可以使用RDD.toLocalIterator()。你应该记住它不是免费的。每个分区都需要一个单独的作业,因此您应该在使用之前考虑保留数据。