我正在尝试在数据框的model.approxNearestNeighbors(df, key, n)
所有行上应用 BucketedRandomProjectionLSH 的函数,以便为每个项目找到前 n 个最相似的项目。我的数据框有 100 万行。
我的问题是我必须找到一种方法在合理的时间内(不超过 2 小时)计算它。我已经阅读了有关该函数的信息,approxSimilarityJoin(df, df, threshold)
但是该函数花费的时间太长并且没有返回正确的行数:如果我的数据框有 100.000 行,并且我设置了一个非常高/允许的阈值,我得到的结果甚至不是 10%返回的行数。
所以,我正在考虑approxNearestNeighbors
在所有行上使用,以便计算时间几乎是线性的。
您如何将该功能应用于数据框的每一行?我不能使用 UDF,因为我需要模型 + 数据框作为输入。
你有什么建议吗 ?