Python 使用PySpark从MongoDB获取文档的正确方法
我正在使用PySpark,我想从MongoDB获取文档。我的问题是,我不知道哪种方法是最好的(或者即使我所做的是有效的),以便以Pyspark的写并行格式获取文档。做这样一件事的最佳方式是什么?在网上找不到太多Python 使用PySpark从MongoDB获取文档的正确方法,python,mongodb,apache-spark,pyspark,Python,Mongodb,Apache Spark,Pyspark,我正在使用PySpark,我想从MongoDB获取文档。我的问题是,我不知道哪种方法是最好的(或者即使我所做的是有效的),以便以Pyspark的写并行格式获取文档。做这样一件事的最佳方式是什么?在网上找不到太多 def get_data(self, uri, pipeline, schema): df = self.sql_context.read.format("com.mongodb.spark.sql.DefaultSource")\ .
def get_data(self, uri, pipeline, schema):
df = self.sql_context.read.format("com.mongodb.spark.sql.DefaultSource")\
.option("uri", uri) \
.schema(schema)\
.option("pipeline", pipeline).load()
return df
**get_data() is in the scope of spark_handler**
def get_documents(spark_handler, uri, limit):
skip = 0
more_data = True
docs = None
while more_data:
pipeline = [.../a pipeline query/...]
skip = skip + orders_limit
temp = spark_handler.get_data(uri, pipeline, self.schema)
if len(temp.head(1)) > 0:
docs = docs.unionAll(temp)
else:
more_data = False
return docs
docs = get_documents(spark_handler, uri_mongo, limit).persist(StorageLevel.MEMORY_AND_DISK)
docs.count()