基于Spark中的JavaRDD过滤JavaPairRDD

时间:2016-01-01 12:40:00

标签: java apache-spark

我是Apache Spark的新手。我需要一个针对以下问题的Java解决方案:

Function<Tuple2<String, String>, Boolean> myFilter =
  new Function<Tuple2<String, String>, Boolean>() {
    public Boolean call(Tuple2<String, String> keyValue)
      {
        return ("some boolean expression");
      }
    };
myPairRDD.filter(myFilter);

编辑: 坦率地说,我不知道我能尝试什么。就像我说的那样,我非常非常喜欢火花。我只是觉得我可以使用像instersection这样的方法。但它需要另一个JavaPairRDD对象。我认为过滤方法不能解决这个问题。例如,

{{1}}

我不知道我可以写什么样的布尔表达式而不是&#34;一些布尔表达式&#34;在上面的功能。对不起我的英语顺便说一句。

1 个答案:

答案 0 :(得分:1)

至少有三种选择:

  • JavaRDD映射到具有任意值的JavaPairRDDjoinmap以删除虚拟值
  • 如果JavaRDD中的唯一值数量很小,collect distinct值,则转换为Setbroadcast并将其用于filter } JavaPairRDD
  • RDDs转换为DataFrames并使用内部联接,然后使用drop / select