在数据框的所有行上应用LSH近似最近邻

时间:2019-05-14 09:32:46

标签: python apache-spark pyspark lsh

我试图在数据帧的所有行上应用BucketedRandomProjectionLSH的函数model.approxNearestNeighbors(df, key, n),以便为每个项目近似找到前n个最相似的项目。我的数据框有100万行。

我的问题是我必须找到一种在合理的时间内(不超过2小时)进行计算的方法。我已经读过有关该函数approxSimilarityJoin(df, df, threshold)的信息,但是该函数花费的时间太长,并且没有返回正确的行数:如果我的数据框有100.000行,并且我将阈值设置为非常高/允许,我会得到类似甚至不是返回的行数的10%。

因此,我正在考虑在所有行上使用approxNearestNeighbors,以便计算时间几乎是线性的。

如何将该函数应用于数据框的每一行?由于需要模型+数据框作为输入,因此无法使用UDF。

您有什么建议吗?

0 个答案:

没有答案