2

我有两个没有需要加入的公共密钥的 Spark RDD。

第一个 RDD 来自 cassandra 表 a,其中包含项目的引用集(id、item_name、item_type、item_size),例如:(1, 'item 1', 'type_a', 20)。第二个 RDD 每晚从另一个系统导入,它包含大致相同的数据,没有 id,并且是原始形式 (raw_item_name, raw_type, raw_item_size) 例如 ('item 1.', 'type a', 20)。

现在我需要根据数据的相似性加入这两个 RDD。正确知道 RDD 的大小约为 10000,但将来它会增长。

我的实际解决方案是:两个 RDD 的笛卡尔连接,然后计算每行的 ref 和 raw 属性之间的距离,然后按 id 分组并选择最佳匹配。

在这种大小的 RDD 下,这个解决方案是有效的,但我担心未来笛卡尔连接可能会变得很大。

有什么更好的解决方案?我试图查看 Spark MLlib,但不知道从哪里开始,使用哪种算法等。任何建议将不胜感激。

4

0 回答 0