#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)