在Python中从MongoDB GridFS加载Spark 2.x数据帧
我正在使用pyspark sql和elephas下的keras 我想尝试使用mongoDB GridFS进行某种分布式图像处理 我在Scala上的Java世界中发现了相关的问题 但除此之外,我在pySpark中找不到任何其他关于如何使用GridFS的文档 我的pyspark-mongo代码如下所示:在Python中从MongoDB GridFS加载Spark 2.x数据帧,python,mongodb,apache-spark,pyspark,gridfs,Python,Mongodb,Apache Spark,Pyspark,Gridfs,我正在使用pyspark sql和elephas下的keras 我想尝试使用mongoDB GridFS进行某种分布式图像处理 我在Scala上的Java世界中发现了相关的问题 但除此之外,我在pySpark中找不到任何其他关于如何使用GridFS的文档 我的pyspark-mongo代码如下所示: sparkConf = SparkConf().setMaster("local[4]").setAppName("MongoSparkConnectorTour")\
sparkConf = SparkConf().setMaster("local[4]").setAppName("MongoSparkConnectorTour")\
.set("spark.app.id", "MongoSparkConnectorTour")\
.set("spark.mongodb.input.database", config.MONGO_DB)
# If executed via pyspark, sc is already instantiated
sc = SparkContext(conf=sparkConf)
sqlContext = SQLContext(sc)
dk = sqlContext.read.format("com.mongodb.spark.sql.DefaultSource")\
.option("spark.mongodb.input.uri", config.MONGO_MED_EVENTS)\
.load()
if (dk.count() > 0):
# print data frame schema
dk.printSchema()
# Preview Dataframe (Pandas Preview is Cleaner)
print( dk.limit(5).toPandas() )
有可能以这种方式处理GridFS数据吗?我想看一个简单的例子。有一种方法可以将Scala代码转换为Pyspark
SPARK\u CLASSPATH=./path/to/mongo-hadoop-core.jar pyspark
sc=SparkContext(conf=sparkConf)
mongo_形态={
“mongo.input.uri”:”mongodb://..."
“mongo.input.query”:s“…mongo查询在此…”
}
rdd=sc.newAPIHadoopRDD(“com.mongodb.hadoop.GridFSInputFormat”,keyClass=“org.apache.hadoop.io.NullWritable”,valueClass=“org.apache.hadoop.io.MapWritable”,conf=conf)
我对keyClass
和valueClass
没有百分之百的把握,所以这里是我用来编译这段代码的源代码: