pyspark中使用欧氏距离或类似距离的最近邻居

时间:2016-09-15 10:43:38

标签: python pyspark nearest-neighbor knn

所以我需要使用欧几里德距离或任何东西找到pyspark DF中给定行的最近邻居。我有20多列,超过千行,所有值都是数字的数据。

我正在尝试对pyspark中的一些数据进行过采样,因为mllib没有内置支持,我决定使用smote自己创建它。

到目前为止,我的方法是使用 stringtoindex 将所有分类距离转换为索引,以便我可以找到欧氏距离和邻居,从而执行击打。

我对spark和ml相当新。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

没试过,但我找到了这个脚本:https://github.com/jakac/spark-python-knn/blob/master/python/gaussalgo/knn/knn.py

如果您的数据是数据框,则应首先将您的列合并到带有vectorASsembler https://spark.apache.org/docs/latest/ml-features.html#vectorassembler的向量中,然后使用df.select("id", "yourColumnVector")

我提供的库似乎只适用于rdd,因此您应该使用df.rdd将数据帧转换为RDD