[英]Key-value pair order in Spark
當應用諸如reduceByKey
的功能時,除了元組的第一個元素reduceByKey
,是否有任何其他方法可以指定鍵?
我當前的解決方案包括使用map
函數以正確的順序重新排列元組,因為我假設此附加操作是以計算為代價的,對嗎?
要使用reduceByKey
,您需要一個鍵值RDD[K,V]
,其中K
是將要使用的鍵。 如果您具有RDD[V]
,則需要首先執行map
以指定密鑰。
myRdd.map(x => (x, 1))
如果您已經擁有RDD[K,V]
,而密鑰不是您想要的...您需要另一個map
。 沒有其他方法可以解決此問題。 例如,如果要在鍵和值之間切換,可以執行以下操作:
myPairRdd.map(_.swap)
您可以覆蓋compare函數並調用sortByKey
:
implicit val sortFunction = new Ordering[String] {
override def compare(a: String, b: String) = // compare function
}
val rddSet: RDD[(String, String)] = sc.parallelize(dataSet)
rddSet.sortByKey()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.