标签: mongodb apache-spark pyspark pymongo rdd
我有一个rdd,我需要存储在mongoDB中。
我尝试使用rdd.map将rdd的每一行写入mongoDB,使用pymongo。但我遇到了泡菜错误,因为它似乎不支持向工人腌制pymongo对象。
因此,我做一个rdd.collect()来获取驱动程序的rdd,并将其写入mongoDB。
rdd.collect()
是否可以反复收集rdd的每个分区?这将最大限度地减少驱动程序内存不足的变化。
答案 0 :(得分:2)
是的,有可能。您可以使用RDD.toLocalIterator()。你应该记住它不是免费的。每个分区都需要一个单独的作业,因此您应该在使用之前考虑保留数据。
RDD.toLocalIterator()