簡體   English   中英

Spark Scala中的矢量操縱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM