我如何从mongodb逐场获取并将其放入标记点

时间:2018-03-21 09:23:09

标签: mongodb apache-spark machine-learning label decision-tree

我想使用mongodb中的数据在Spark中创建LabeledPoint。我可以通过以下方式从mongodb获取字段:

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db1 = client.newumc
collection1 = db.data_classification
q_2 = collection1.find({}, {'q2':1,'_id':0})
q_1 = collection1.find({}, {'q1':1,'_id':0})
q_38 = collection1.find({}, {'q38':1,'_id':0})
_result = collection.find({},{'qresultat':1,'_id':0})

其中q1q2q38qresultat是来自mongodb(q1q2q38的字段是功能,_result是标签。)

但这对我不起作用:

lbpoint =  LabeledPoint(result, array([q1, q2, q38]))

和类型(q2)是

pymongo.cursor.Cursor

任何人都可以帮助我,或者有人已经拥有mongodb的决策树代码。

1 个答案:

答案 0 :(得分:0)

我通过使用

解决了这个问题
spark = SparkSession \
.builder \
.appName("myApp") \
.config("spark.mongodb.input.uri", "mongodb://127.0.0.1/newumc.classification_data") \
.config("spark.mongodb.output.uri", "mongodb://127.0.0.1/newumc.classification_data") \
.getOrCreate()
df = spark.read.format("com.mongodb.spark.sql.DefaultSource").load()
column1 = df[1]
column2 = df[2]