Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Spark RDD中指定簇相等时的求和值_Python_Apache Spark_Pyspark_K Means_Rdd - Fatal编程技术网

Python Spark RDD中指定簇相等时的求和值

Python Spark RDD中指定簇相等时的求和值,python,apache-spark,pyspark,k-means,rdd,Python,Apache Spark,Pyspark,K Means,Rdd,我有一个PySpark程序,它对变量进行描述,并使用Spark Word2Vec模型将描述转换为向量,然后使用KMeans对这些向量进行聚类,以便对描述相同事物的描述进行分组 但是,数据集中有许多重复项。我对原始数据集进行了重复数据消除,但对每个唯一的行保留一个计数,即该描述最初存在的重复数 在对描述向量进行聚类之后,我将结果rdd压缩回带有描述的数据集中。我想根据映射到该集群的数据条目的总数对集群进行排序。因此,最终的RDD如下所示: [([companyid=u'xxxxxxxx', var

我有一个PySpark程序,它对变量进行描述,并使用Spark Word2Vec模型将描述转换为向量,然后使用KMeans对这些向量进行聚类,以便对描述相同事物的描述进行分组

但是,数据集中有许多重复项。我对原始数据集进行了重复数据消除,但对每个唯一的行保留一个计数,即该描述最初存在的重复数

在对描述向量进行聚类之后,我将结果rdd压缩回带有描述的数据集中。我想根据映射到该集群的数据条目的总数对集群进行排序。因此,最终的RDD如下所示:

[([companyid=u'xxxxxxxx', variableid=u'prop11', description=u'payment method',duplicateCount=u'8', word2vecOutput=DenseVector([.830574, 1.96709, -0.86785,......])], clusterID=793]
集群被分离,因为它被压缩回W2V rdd。 我想找到一种方法来聚合所有duplicateCount值,并生成一个有序列表,其中包含按原始行总数排序的原始行总数(在重复数据消除之前)

用一个简单的聚合函数似乎很容易做到这一点,但无论出于什么原因,我都很难理解它

谢谢你的帮助

编辑:

为了澄清,在我的RDD的每一行中,都有一个标记为duplicateCount的数字。还有另一个元素标记为cluster。我试图编写一个函数,在集群相等的情况下,将duplicateCount相加,从而为每个集群提供totalCount

例如,4个元素可能被分组到集群10中。但是,第一个元素的duplicateCount可能为5,第二个元素的duplicateCount可能为37,以此类推(仍然都在集群10中)。我想对每个集群中的重复项求和,以便得到集群的实际大小


我原以为W2V和KMeans会为我为什么想要它提供有用的背景,但显然它只是让问题变得混乱了

问题是什么?请查看您的描述,您的问题不清楚!顺便说一下,K-means不适用于分类特征。你可以阅读这篇文章来注意原因。我编辑了原始文章来澄清。我对输出到word2vec的向量进行聚类(这是一个100个数字的向量),而不是单词本身。还有,这篇文章有什么不清楚的地方?我基本上有一个数据帧,其中包括一个集群ID和一个重复计数。我想将集群ID相等的所有重复计数相加,这样就可以得到每个集群的总计数