2016-06-06 3 views
0

Я использую 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, но я до сих пор ищет лучшее решение.

ответ