Как преобразовать выбранные столбцы в карту в спарк? - PullRequest
0 голосов
/ 18 декабря 2018

Это очень конкретный вопрос
У меня есть таблица, и я выбрал один столбец String и два столбца Timestamp и собрал их в список в формате List [(String, Timestamp, Timestamp)], я хочупреобразовать его в карту с таким форматом, как Map [String, ArrayList (Timestamp, Timestamp)], поскольку одна строка может иметь несколько соответствующих значений Timestamp.Но я не знаю, как перенести его в Spark / Scala, я пробовал следующие коды, но не работает:

def listToMap(input:List[(String,Timestamp,Timestamp)]) :util.HashMap[String,util.ArrayList[Timestamp,Timestamp]]= {
var out = new util.HashMap[String,util.ArrayList[Timestamp,Timestamp]]()
for (value<-input) {
  val array=new util.ArrayList[Timestamp,Timestamp](value(1),value(2))
  out.put(value(0),array)
  }
}

Кто-нибудь знает, как лучше это сделать?Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Вы можете использовать этот код ниже: ArrayBuffer является эквивалентом ArrayList в Scala.

import scala.collection.mutable.ArrayBuffer
val lst = List(("Test1","Timestamp1","Timestamp2"),("Test2","Timestamp3","Timestamp4"))
println(lst.map(x=>x._1 ->ArrayBuffer(x._2,x._3)).toMap)

Вывод:

Map(Test1 -> ArrayBuffer(Timestamp1, Timestamp2), Test2 -> ArrayBuffer(Timestamp3, Timestamp4))
0 голосов
/ 19 декабря 2018

Я думаю, вы можете использовать точку останова, чтобы узнать, как работает ваш код, где out.put(value(0), array).

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