У меня запущены очень большие варианты использования, и из-за нехватки ресурсов я должен ограничить нет.данных, обрабатываемых в данный момент времени.Таким образом, запустив счетчик для цикла, например от 1 до 10, и для каждого обработанного мною цикла, скажем, 200000 строк.
Мой вопрос заключается в том, что если в моем источнике есть 1M строк, то в конечном итоге обработка будет выполняться за 5 циклов (1M /200000).И у меня есть несколько источников также.Так, например.
Source A has 1M rows
Source B has 2M rows.
Когда я нахожусь в цикле для каждого источника, скажем,
for (source in Sources) {
val rddSource = spark.read.table(source)
rddSource.persist
rddSource.count // to persist the above rdd
while (counter < 5) {
//process every 200000 rows with the above persisted rddSource
}
}
Я хочу сохранить данные, как показано выше. Это поможет запустить источник A для каждых 5время каждого с 200000 строк.
Но для следующей итерации цикла for с источником B, он заменяет ранее кэшированный {rddSource} или мне нужно иметь что-то вроде этого
for (source in Sources) {
val rddSource = spark.read.table(source)
rddSource.unPersist
rddSource.persist
rddSource.count // to persist the above rdd
while (counter < 5) {
//process every 200000 rows with the above persisted rddSource
}
}