How to efficiently read mongodb collection into spark's DataFrame

From: Bhanu <bhanupratapsingh.860@xxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Wed, 20 Apr 2016 06:01:51 -0700 (PDT)
Why ads?
I am trying to load a mongodb collection into spark's DataFrame using 
mongo-hadoop connector. Here is a snippet of relevant code:

from pyspark import SparkContext, SparkConf
import pymongo_spark

pymongo_spark.activate()
sc = SparkContext(conf=conf)
connection_string = 'mongodb://%s:%s/randdb.%s'%(dbhost, dbport, collection_name)
trainrdd = sc.mongoRDD(connection_string)
#     traindf = sqlcontext.createDataFrame(trainrdd)
#     traindf = sqlcontext.read.json(trainrdd)
traindf = sqlcontext.jsonRDD(trainrdd) 

I have also tried the variants which are commented out in the code. But all 
are equally slow. For a collection of size 2GB (100000 rows and 1000 columns
), it takes around 6 hours(holy moly :/) on a cluster of 3 machines each 
with 12 cores and 72 GB RAM (using all the cores in this spark cluster). 
Mongodb server is also running on one of these machines.

I am not sure if I am doing it correctly. Any pointers on how to optimize 
this code would be really helpful.



-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/f8d8765c-b45d-473a-8e71-43155cbeb70d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?