Gou*_*eru 3 java minhash locality-sensitive-hash apache-spark
我正在尝试实现 LSH spark 以在包含 50000 行和每行约 5000 个特征的非常大的数据集上为每个用户找到最近的邻居。这是与此相关的代码。
MinHashLSH mh = new MinHashLSH().setNumHashTables(3).setInputCol("features")
.setOutputCol("hashes");
MinHashLSHModel model = mh.fit(dataset);
Dataset<Row> approxSimilarityJoin = model .approxSimilarityJoin(dataset, dataset, config.getJaccardLimit(), "JaccardDistance");
approxSimilarityJoin.show();
Run Code Online (Sandbox Code Playgroud)
作业卡在 approxSimilarityJoin() 函数上,永远不会超出它。请让我知道如何解决它。
小智 9
如果您将其放置足够长的时间,它将完成,但是您可以采取一些措施来加快速度。查看源代码,您可以看到算法
由于数据被打乱,连接可能是这里的缓慢部分。所以要尝试一些事情:
spark.sql.shuffle.partitions(加入后默认为您提供 200 个分区)spark.sql.functions.broadcast(dataset)用于地图侧连接sparseVectors.在这 4 个选项 2 和 3 中,我一直使用sparseVectors.
| 归档时间: |
|
| 查看次数: |
3255 次 |
| 最近记录: |