Применить LSH ок. Ближайшие соседи ко всем строкам кадра данных. - PullRequest
1 голос
/ 14 мая 2019

Я пытаюсь применить функцию BucketedRandomProjectionLSH model.approxNearestNeighbors(df, key, n) ко всем строкам фрейма данных, чтобы найти приблизительно n самых похожих элементов для каждого элемента. Мой фрейм данных имеет 1 миллион строк.

Моя проблема в том, что я должен найти способ вычислить его в течение разумного времени (не более 2 часов). Я читал об этой функции approxSimilarityJoin(df, df, threshold), но функция занимает слишком много времени и не возвращает правильное количество строк: если мой информационный кадр имеет 100 000 строк, и я установил порог ОЧЕНЬ высокий / разрешающий, я получаю что-то вроде даже не 10% от числа возвращаемых строк.

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

Как применить эту функцию к каждой строке кадра данных? Я не могу использовать UDF, так как мне нужны модель + датафрейм в качестве входных данных.

Есть ли у вас какие-либо предложения?

...