【发布时间】:2015-04-21 23:35:02
【问题描述】:
我正在使用 Scala 在 Spark 中编写一个小程序,但遇到了一个问题。我有一个单个单词字符串的列表/RDD 和一个可能包含也可能不包含单个单词列表中的单词的句子列表/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 万个句子,哪种方法会更快?还有其他解决方案吗?你能帮我写代码吗,我的代码似乎没有结果(尽管它编译和运行没有错误)
【问题讨论】:
-
鉴于每个单词将获得 10 万个句子的平均值,分组可能不是一个真正的选择。 (单词,句子)会是更好的结束格式
标签: string scala apache-spark