使用Spark模糊连接多列

时间:2016-03-20 13:48:14

标签: join apache-spark apache-spark-mllib fuzzy

我有两个没有公共密钥的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。','输入',20)。

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

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

在这种规模的RDD中,这个解决方案正在发挥作用,但我担心将来笛卡尔联盟可能会变得很大。

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

0 个答案:

没有答案