0
下面的代碼塊之間的性能差異是什麼?Spark flatMapToPair vs [filter + mapToPair]
1.FlatMapToPair:此代碼塊使用單一的轉化,但基本上是具有在其內部的濾波條件,它返回一個空列表,在技術上不容許該元素在RDD沿前進
rdd.flatMapToPair(
if (<condition>)
return Lists.newArrayList();
return Lists.newArrayList(new Tuple2<>(key, element));
)
2. [Filter + MapToPair]這個代碼塊有兩個轉換,其中第一個轉換僅使用與上述代碼塊相同的條件進行過濾,但在過濾器之後執行另一個轉換mapToPair。
rdd.filter(
(element) -> <condition>
).mapToPair(
(element) -> new Tuple2<>(key, element)
)
爲放電足夠的智能,與這兩個不管轉型的數量的代碼塊執行相同或代碼塊2,因爲這些是兩個轉變表現更差?
感謝