Я использую ScalikeJDBC для извлечения большой таблицы, преобразования данных в JSON и последующего вызова веб-службы с 50 объектами (строками) JSON каждый. Это мой код:Итерации по большому набору результатов в пакетах (например, foreach, но сгруппированы)
val rows = sql"SELECT * FROM bigtable"
val jsons = rows.map { row =>
// build JSON object for each row
}.toList().apply()
jsons.grouped(50).foreach { batch =>
// send 50 objects at once to an HTTP server
}
Это работает, но, к сожалению, промежуточный список огромен и потребляет много памяти. Я ищу способ итерации по набору результатов «ленивым» способом, похожим на foreach
, за исключением того, что я хочу перебирать партии по 50 строк. Возможно ли это с помощью ScalikeJDBC?
я решал проблемы с памятью путем заполнения и очистки изменяемый список вместо grouped
, но я до сих пор ищет лучшее решение.
К сожалению, моя проблема не драйвер JDBC коробления памяти, но промежуточный список, который я использую для 'grouped'. – stholzm