итерация последовательных элементов в списке в строках - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть искра rdd с таким столбцом, как

Список (1, 3, 4, 8)

Список (2, 3)

Список (1, 5, 6)

Я хотел бы получить новую строку с последовательными элементами в каждом списке в строках, например

(1, 3)

(3, 4)

(4, 8)

(2, 3)

(1, 5)

(5, 6)

Как я могу добиться этого с scala?

1 Ответ

1 голос
/ 20 апреля 2020

Рассмотрим:

  1. с использованием дополнительной (простой Scala) функции с подписью List[Int] => List[(Int, Int)] для достижения желаемого результата для единого списка

    и

  2. передача этой функции методу flatMap вашего СДР.

Эта дополнительная функция может выглядеть следующим образом:

def makeTuples(l: List[Int], 
               acc: List[(Int, Int)] = List.empty): List[(Int, Int)] = 
  l match {
    case Nil | _ :: Nil => acc.reverse
    case a :: b :: rest => makeTuples(b :: rest, (a, b) :: acc)
  }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...