Spark使用Broadcasted变量的结果出现差异

时间:2015-09-28 15:46:30

标签: python apache-spark pyspark gensim word2vec

我有word2vec模型和pyspark工作,其中我总结了每个文档的单个单词向量。

model = gensim.models.Word2Vec.load('w2v.mod')
model2 = sc.broadcast(model)

def getVector(article):
    vec = numpy.ndarray(100)
    for word in article:
        if word in model2.value:
            vec += model2.value[word]
    return vec /len(article)

data = sc.textFile('documents.txt').map(lambda doc:doc.split())
vectors=  data.map(lambda doc:(doc,getVector(doc)))

我在pyspark结果和正常结果之间出现了奇怪的差异。

vectors.take(1)

Spark的结果

Results with spark

没有火花的结果 Results without spark

它只是给我阵列的强度在15个数量级上(看上面的第7个元素),而在本地计算相同的矢量给我法线向量。在这里使用Spark有什么问题?在将结果传达给师父时,是否会弄清楚答案?

0 个答案:

没有答案