4
我對Spark的rdd.take(n)和rdd.takeOrdered(n)如何工作有點困惑。有人可以用一些例子向我解釋這兩種方法嗎?謝謝。On Spark的RDD的採取和採取訂購方法
我對Spark的rdd.take(n)和rdd.takeOrdered(n)如何工作有點困惑。有人可以用一些例子向我解釋這兩種方法嗎?謝謝。On Spark的RDD的採取和採取訂購方法
爲了解釋我們是如何排序的作品創建RDD與整數從0到99:
val myRdd = sc.parallelize(Seq.range(0, 100))
我們現在可以執行:
myRdd.take(5)
至極將提取的第5個要素RDD,我們將獲得一個Array [Int],包含myRDD的前5個整數:'0 1 2 3 4 5'(沒有排序功能,只是前5個元素的前5個元素)
takeOrd ERED(5)操作以類似的方式運行:它會提取RDD的第5個元素爲一個數組[INT]但我們不得不機會來指定排序標準:
myRdd.takeOrdered(5)(Ordering[Int].reverse)
將提取的第5元素根據指定的順序。在我們的情況下,結果將是:99 98 97 96 95'
如果你在你的RDD更復雜的數據結構,你可能要與操作執行自己的排序函數:
myRdd.takeOrdered(5)(Ordering[Int].reverse.on { x => ??? })
根據您的自定義排序功能,將RDD的前5個元素提取爲Array [Int]。
如果你解釋你發現了什麼讓你感到困惑,那將會更容易。它是實現本身還是隻是一個如何使用這些的方法?或者也許別的東西? – zero323
@ zero323基本上,如何使用這些。這是在我的同事的代碼中,我試圖理解他的代碼,但是對Scala/Spark來說是新手,我很難過。他出去了,現在不能問他。 – menorah84