我正在使用 Spark。我有一个JavaPairRDD
表格<Documentname, Tuple2<Phrase, URL>>
。
我基本上已经检查了一个短语是否在 URL 指定的页面中,从而产生了上面的结构。
现在,我有几个重叠的短语(即“to be or”在“to be or not to be”中),我想删除这些包含在较大短语中的较短短语。
我对 Spark 有点陌生,所以我不确定如何在 Spark中执行此操作。
我知道如果我收集()元素,我可以创建一个双嵌套循环并执行此操作,但我想知道是否有办法在 Spark 中通过减少或聚合来执行此操作。
基本上,我想要一个函数来检查每对短语,如果一个短语不包含在另一个短语中,则返回两个短语,或者如果一个短语包含在一个短语中,则返回一个短语。
或者,我想运行某种过滤器来删除这些较短的短语。
有任何想法吗?
编辑:我认为 CombinebyKey 或 AggregateByKey 都可以,但我不知道如何在 Java 中使用它们。什么是序列/组合器功能?
我想按键组合 > 的几个元素,并有一个元组列表,其中一个短语不包含在其他任何短语中。