Я читал книгу «Руководство по определению искр». У нее есть пример, подобный приведенному ниже.
val myRange = spark.range(1000).toDF("number")
val divisBy2 = myRange.where("number % 2 = 0")
divisBy2.count()
Ниже приведено описание трех строк кода.
we started a Spark job that runs our filter transformation (a narrow
transformation), then an aggregation (a wide transformation) that performs the counts on a per
partition basis, and then a collect, which brings our result to a native object in the respective
language
Iзнаю, что счет является действием , а не преобразованием , так как он возвращает фактическое значение, и я не могу вызвать ' объяснение ' для возвращаемого значения счетчика.
Но мне было интересно, почему подсчет вызовет широкое преобразование, как я могу узнать план выполнения этого count в этом случае, поскольку я не могу вызвать объяснение после count
Спасибо.
обновлено:
Это изображение - скриншот spark ui, я беру его из блокнота данных, я сказал, что есть перемешиваниеоперация записи и чтения, означает ли это, что существует широкое преобразование?