我需要在pyspark DF中找到给定行的最近邻,使用欧几里得距离或其他方法。数据有20多列,超过一千行,所有值都是数字。
我正在尝试在pyspark中对一些数据进行过采样,由于mllib没有内置支持,所以我决定自己创建使用smote。
我的方法到目前为止是使用stringtoindex将所有分类距离转换为索引,这样我就可以找到欧几里得距离和邻居,从而执行smote。
我对spark和ml相当陌生。任何帮助将不胜感激。
我需要在pyspark DF中找到给定行的最近邻,使用欧几里得距离或其他方法。数据有20多列,超过一千行,所有值都是数字。
我正在尝试在pyspark中对一些数据进行过采样,由于mllib没有内置支持,所以我决定自己创建使用smote。
我的方法到目前为止是使用stringtoindex将所有分类距离转换为索引,这样我就可以找到欧几里得距离和邻居,从而执行smote。
我对spark和ml相当陌生。任何帮助将不胜感激。
我找到了这个脚本,但是没有试过:https://github.com/jakac/spark-python-knn/blob/master/python/gaussalgo/knn/knn.py
如果您的数据是dataframe,您需要使用vectorASsembler将列合并成一个向量:https://spark.apache.org/docs/latest/ml-features.html#vectorassembler,然后使用df.select("id", "yourColumnVector")
我提供的库似乎只与rdd一起工作,所以您需要使用df.rdd
将您的dataframe转换为RDD。