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