У меня есть карта Scala, где ключи представляют индексы, а значения представляют значение этого индекса. По сути, это редкий вектор.
Я хочу преобразовать это в массив Java (для использования с Spark).
Я использую:
def toArray[T](input: Map[Int, T]): Array[T] = (0 until scores.keys.max).map(i => input.get(i).orNull).toArray
Целью этого является использование в приложении Spark. T
, который я использую, - это Spark Vector, который может быть огромным (например, десятки тысяч двойников, МБ данных). Я обеспокоен тем, что то, что я делаю, так это то, что я не слишком экономен в использовании памяти.
Есть ли более эффективный способ памяти?