如何解决如何在 Spark 中创建距离矩阵来实现 Kmeans 算法
我对 Spark 很陌生,我正在尝试实现 Kmeans 算法,根据名称之间的相似性对一组名称进行聚类,但是为了理解模型的预测,我需要一个数据框/我无法单独使用 Spark 重现的矩阵,到目前为止我必须创建一个 Pandas DF 并将其转换为 Spark DF。有人告诉我,对于未来数据集的规模,这不是正确的方法。
所以这或多或少是我所拥有的:
我有以下一组名称,这是一个小样本,但我将其用作练习,以了解在使用更大的真实数据集后它的行为
df = spark.createDataFrame(["GERMAN","GERMANY","GERMANIA","LENOVO"],"string").toDF("Name")
df.show()
+--------+
| Name|
+--------+
| GERMAN|
| GERMANY|
|GERMANIA|
| LENOVO|
+--------+
我定义的用于计算每个词之间相似度的UDF是:
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,我可以在有任何问题的情况下实现模型。所以任何帮助将不胜感激 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。