PySpark RDD中的成对相似度计算需要永远

时间:2018-04-29 12:13:58

标签: apache-spark pyspark rdd cosine-similarity

我有一个RDD(称为"数据"),其中每一行都是一个id / vector对,如下所示:

 [('1',
   array([ 0.16501912, -0.25183533, -0.07702908,  0.07335572,  0.15868553])),
  ('2',
  array([ 0.01280832, -0.27269777,  0.09148506,  0.03950897,  0.15832097])),

我需要计算此RDD的成对相似性,将每行与每隔一行进行比较。我试过这个:

pairs  = data.cartesian(data)\
        .map(lambda l: ((l[0][0], l[1][0]), l[1][1].dot(l[1][1])))\
        .sortByKey()

但这需要永远,因为RDD大约是500k行。我想知道是否有更好的方法?我正在使用pyspark。

非常感谢。

0 个答案:

没有答案