У меня есть упорядоченное RDD типа ((id, ts), some value)
. Это было разделено с использованием настраиваемого разделителя в поле id
.Запуск groupByKey/reduceBuKey по секционированным данным, но с разным ключом
math.abs(id.hashCode % numPartitions)
Теперь Если я бегу следующих две функций на этом многораздельном РДЕ, он будет включать в себя перестановку и повторное разбиение данных.
val partitionedRDD: ((id:Long, ts:Long), val:String) = <Some Function>
val flatRDD = orderedRDD.map(_ => (_._1.id, (_._1.ts, _._2)))
То, что я хочу знать, является ли flatRDD.groupByKey()
и flatRDD.reduceByKey()
будет иметь такое же разделение, как partitionedRDD или искра будет перетасовать набор данных снова и создавать новые разделы?
Спасибо, Devi