вам нужно преобразовать List[Array[String]] => List[scala.Product]
, чтобы соответствовать типу ввода API, который вы вызываете.
Скажем, ваш API выглядит следующим образом:
scala> def glueApi(data: Seq[Product]) = "do something"
glueApi: (data: Seq[Product])String
преобразование: List[Array[String]] => List[scala.Product]
scala> val data = List(Array("id", "001", "id2", "002"), Array("date1", "data1", "date2", "data2"))
data: List[Array[String]] = List(Array(id, 001, id2, 002), Array(date1, data1, date2, data2))
scala> val dataProducts:List[Product] = data.map { case Array(a, b, c, d) => (a, b, c, d) }
dataProducts: List[Product] = List((id,001,id2,002), (date1,data1,date2,data2))
вызов API:
scala> glueApi(dataProducts)
res3: String = do something
Примечание: TupleN
подразумевается ProductN
. - https://www.scala -lang.org / api / 2.12.6 / scala / Tuple4.html
case class Tuple4[+T1, +T2, +T3, +T4](_1: T1, _2: T2, _3: T3, _4: T4)
extends Product4[T1, T2, T3, T4]
{
override def toString() = "(" + _1 + "," + _2 + "," + _3 + "," + _4 + ")"
}