Spark Countbykey() — почему реализовано как действие

#apache-spark #action #transformation

#apache-spark #Экшен #преобразование

Вопрос:

В Spark почему CountbyKey() реализуется как действие, а не как преобразование. Я думаю, что с точки зрения функциональности он похож на Reducebykey или combinebykey. Есть ли какая-либо конкретная причина, по которой это реализовано как действие..

Комментарии:

1. Буквально собираюсь задать этот вопрос, и ваш вопрос возник как аналогичный вопрос. Кажется, никто не знает ответа? : D

Ответ №1:

Он подсчитывает значение RDD, состоящее из двух компонентов кортежа для каждого отдельного ключа. Он фактически подсчитывает количество элементов для каждого ключа и возвращает результат мастеру в виде списков пар (ключ, количество).

Пример:

 val rdd1 = sc.parallelize(Seq(("Spark",78),("Hive",95),("spark",15),("HBase",25),("spark",39),("BigData",78),("spark",49)))
rdd1.countByKey
  

Вывод:

 scala.collection.Map[String,Long] = Map(Hive -> 1, BigData -> 1, HBase -> 1, spark -> 3, Spark -> 1)