簡體   English   中英

Java和Spark的Lambda表達式

[英]Lambda expressions with Java and Spark

此代碼中帶有.filter()的部分,

JavaPairRDD<Integer, ?> vals = sc
            .parallelize(Arrays.asList(10, 15, 0))
            .zipWithIndex();
JavaPairRDD<Integer, ?> valsGreaterThan5 = vals
            .filter((k, v) -> v > 5)
            .map((k, v) -> k);

給我一個

Lambda表達式的簽名與功能接口方法調用(Tuple2)的簽名不匹配

錯誤。 我不明白 我什至沒有在類型中使用Tuple2。 錯誤的原因是什么,如何解決?

mapfilter僅獲得一個Tuple2類型的Tuple2 無法以這種方式對其進行重組。 您可以:

JavaPairRDD<Integer, ?> valsGreaterThan5 = vals
        .filter(kv -> v._2 > 5)
        .map(kv -> k._1);

或更好:

JavaPairRDD<Integer, ?> valsGreaterThan5 = vals
        .filter(kv -> v._2 > 5)
        .keys();

暫無
暫無

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

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