2016-09-15 3 views
1

Поэтому мне нужно найти ближайших соседей данной строки в pyspark DF, используя эвклидовое расстояние или что угодно. данные, которые у меня есть 20 + столбцов, более тысячи строк и все значения являются числами.Ближайший сосед в pyspark с использованием эвклидовой дистанции или аналогичный

Я пытаюсь перенаправить некоторые данные в pyspark, так как mllib не имеет встроенной поддержки для него, я решил создать его самостоятельно, используя smote.

Мой подход до сих пор заключался в том, чтобы преобразовать все категориальные расстояния в индекс, используя stringtoindex, чтобы я мог найти эвклидовое расстояние и соседи и, следовательно, выполнить удар.

Я довольно новичок в искры и мл. Любая помощь будет оценена по достоинству.

+0

Какова ваша * конкретная проблема? Пожалуйста, покажите нам, что вы пробовали до сих пор. Stack Overflow - это не служба написания кода, но люди готовы помочь вам, если вы хотя бы попытаетесь решить проблему самостоятельно. Пожалуйста, прочитайте [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и [Как задать хороший вопрос?] (Http://stackoverflow.com/help/ как к спрашивать). Затем обновите и * улучшите свой вопрос *. –

+0

сделал некоторые изменения, спасибо за предложение. –

ответ

2

Не пробовал, но Ive нашел этот сценарий: 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, поэтому вы должны преобразовать ваш dataframe в RDD, используя df.rdd