我写使用Scala的Spark中的一个小程序,以及跨问题就来了。我有单个字符串的List/RDD和句子的List/RDD,它们可能包含或可能不包含单个单词列表中的单词。即斯卡拉/星火有效部分字符串匹配
val singles = Array("this", "is")
val sentence = Array("this Date", "is there something", "where are something", "this is a string")
,我想选择包含一个或多个的话,从单打使得结果应该是这样的句子:
output[(this, Array(this Date, this is a String)),(is, Array(is there something, this is a string))]
我想到了两种办法,一种通过分裂该句子和使用.contains进行过滤。另一种是将句子分割并格式化为RDD,并使用.join进行RDD交集。我正在查看大约50个单个单词和500万个句子,哪种方法会更快?还有其他解决方案吗?你能不能也帮我编码,我似乎得到我的代码没有结果(尽管它编译和运行没有错误)
鉴于每个单词将得到平均100K的句子,分组可能不是一个真正的选择。 (单词,句子)将会是一个更好的结束格式 – maasg