У меня есть СДР, groupResultMap
, и напишите код ниже.
if (groupResultMap.isEmpty) Map[String, Any]()
else groupResultMap.mapPartitions ( //do somthing// ).collectAsMap
В коде СДР будет оцениваться дважды, если он не пустой. Как вы думаете, производительность будет лучше, если я поставлю groupResultMap.cache()
, чтобы избежать лишних оценок, когда СДР не пуст?
Означает ли оценка СДР по isEmpty()
то же, что и оценка collectAsMap()
? Или isEmpty()
оцените только ту часть, которая требуется для действия? Знаете, оценки только одной строки СДР будет достаточно, чтобы вычислить результат isEmpty()
спасибо.