[英]vector manipulation in spark scala
我有以下形式的RDD
res73: org.apache.spark.rdd.RDD[(Vector[(Long, Int)], Vector[(Long, Int)])] = MapPartitionsRDD[72]
有很多條目。 現在我想將此RDD轉換為下面的另一種形式。
RDD[(Long,Long),(Int,Int)]
原始RDD的條目可以采用以下形式
((2,3),(5,7)) -> (4,8)
應該變成
(2,4) -> (3,8)
(5,4) -> (7,8)
在新的RDD中。 對於原始RDD的每個條目,都應該發生這種情況。
另一個例子:
(1,2) -> ((3,4),(5,6))
變成
(1,3) -> (2,4)
(1,5) -> (2,6)
我無法在Scala中對其進行編碼。 請幫助。
您是否正在尋找這樣的東西:
val input: RDD[(Vector[(Long, Int)], Vector[(Long, Int)])] = ...
val result: RDD[Vector[((Long, Long), (Int, Int))]] = input.map {
case (left, right) =>
for ((ll, li) <- left; (rl, ri) <- right) yield {
(ll, rl) -> (li, ri)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.