Когда я кодировал программу scala в искровом режиме локального режима, код похож на RDD.map(x => function()).collect
, на консоли в течение долгого времени нет выхода журнала, и я думаю, что это stucks. Поэтому я изменяю действие collect
на count
, все исполнение завершено в ближайшее время. Кроме того, на этапе map
имеется мало записей, которые должны быть собраны collect
, поэтому проблема не может быть вызвана сетевым транс при отправке результата в драйвер.В чем разница между действиями collect и count?
Может ли кто-нибудь знать причину или столкнулся с подобной проблемой?
«count» работает с каждым разделом, а также в исполнителях, когда собирает все данные в драйвер, сохраняет их в памяти драйвера и затем выполняет любые вычисления. В любом случае «собирать» будет намного медленнее, чем «счет». – Sumit