0
我的100m左右行,4GB的数据集结果计数,包含两个列表这样的:有条件加入一个的大数据帧
Seed
a
r
apple
hair
brush
tree
Phrase
apple tree
hair brush
我想要得到的唯一匹配“短语的计数为每个唯一'种子'。例如,种子'a'包含在'苹果树'和'毛刷'中,所以'Phrases_matched_count'应该是'2'。匹配只是使用部分补丁(即'string contains'匹配,不需要是正则表达式或任何复杂的东西)。
Seed Phrases_matched_count
a 2
r 2
apple 1
hair 1
brush 1
tree 1
我一直试图找到一种方法来做到这一点使用Apache猪(小亚马逊EMR集群上),和Python熊猫(数据集只是在内存的容量),但就是无法找到一种不需要循环遍历每个独特'种子'的每一行的方法,这将花费很长时间,或者是表的交叉乘积,这将使用太多的内存。
任何想法?
感谢您的回答,但这并没有解决问题。我并不想在行内计算maches - 我试图计算从每个独特种子到所有可能的独特短语有多少匹配。即,在整个'短语'列中。因此可扩展性的问题。对不起,如果这不明确 - 我已经做了几个编辑试图澄清在原来的文章。 –
没问题。我修改了我的答案,告诉我它是否有帮助。 – Romain
仍然不完全符合我的要求,因为'Seed'和'Phrase'之间的完整匹配尚未完成。我所展示的仅仅是两个清单之间的不完整对应关系。再次,抱歉,如果不清楚 - 我已经编辑了原始帖子,试图让它更清晰,有两个列表,这是一个全能型搜索问题。所有对所有搜索字符串匹配的确是最困难的一步。 –