问题描述
我对 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 (将#修改为@)