我对Spark非常陌生,我正在尝试实现Kmeans算法,根据名称之间的相似性对一组名称进行聚类,但为了理解模型的预测,我需要一个数据帧/矩阵,我无法单独使用Spark来重现该数据帧/矩阵,到目前为止,我必须创建熊猫DF并将其转换为Spark DF。我被告知,对于未来数据集的规模而言,这不是正确的方法
因此,这里或多或少是我所拥有的:
我有以下一组名称,这是一个小样本,但我使用它作为练习,看看一旦我使用了更大的真实数据集,它的行为如何
df = spark.createDataFrame(["GERMAN", "GERMANY", "GERMANIA", "LENOVO"], "string").toDF("Name")
df.show()
+--------+
| Name|
+--------+
| GERMAN|
| GERMANY|
|GERMANIA|
| LENOVO|
+--------+
我为计算每个单词之间的相似性而定义的自定义项是:
lcs_udf = udf(lambda w, v : 1 - metric_lcs.distance(w, v), FloatType())
我正在尝试使用这个函数并生成一个数据框,该数据框将给我每个可能的词对之间的相似性,它本质上是一个对角矩阵,理想情况下看起来像这样:
+--------+--------+---------+----------+--------+
| Name| GERMAN | GERMANY | GERMANIA | LENOVO |
+--------+--------+---------+----------+--------+
| GERMAN| 1 | ..... | ..... | ... |
| GERMANY| .... | 1 | .... | .... |
|GERMANIA| .... | .... | 1 | .... |
| LENOVO| .... | .... | .... | 1 |
+--------+--------+---------+----------+--------+
有了这个DF,我可以实现任何问题的模型。因此,任何帮助都将不胜感激 谢谢
目前没有回答
相关问题 更多 >
编程相关推荐