簡體   English   中英

在Spark中基於JavaRDD過濾JavaPairRDD

[英]Filtering JavaPairRDD based on a JavaRDD in Spark

我是Apache Spark的新手。 我需要針對以下問題的Java解決方案:

JavaPairRDD:        JavaRDD:           Desired Output:

1,USA               France             2,England
2,Engand            England            3,France
3,France
4,Italy 

編輯:坦率地說,我不知道我可以嘗試什么。 就像我說的那樣,我是新手。 我只是以為我可以使用像inssectionsection這樣的方法。 但是它需要另一個JavaPairRDD對象。 我認為過濾器方法不適用於此問題。 例如,

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);

我不知道我可以寫什么樣的布爾表達式,而不是上面函數中的“某些布爾表達式”。 抱歉,我的英語不好。

至少有三個選項:

  • 映射JavaRDDJavaPairRDD任意值, joinmap下降虛擬值
  • 如果JavaRDD的唯一值數量很少,請collect distinct值,轉換為Setbroadcast並使用它filter JavaPairRDD
  • 將兩個RDDsRDDsDataFrames並使用內部DataFrames然后使用drop / select

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM