Я пытаюсь понять, как aggregateByKey
работает в искре
В приведенном ниже примере преобразовывается
("David", 6), ("Abby", 4), ("David", 5), ("Abby", 5))
в
(Abby,Set(5, 4))
(David,Set(5, 6))
С кодом ниже
val babyNamesCSV = spark.sparkContext.parallelize(List(("David", 6), ("Abby", 4), ("David", 5), ("Abby", 5)))
babyNamesCSV.aggregateByKey(new HashSet[Int])(
(k,v) => {
println("start")
println(k)
println(v)
println("end")
k += v
},
(v,k) => {
println("start2")
println(k)
println(v)
println("end2")
v ++ k
}).map(line => {
println(line)
line
}).take(100)
Я заметил, что сумматор println
никогда не показывался на терминале sbt
, хотя seqOp
показывал, есть ли причина, почему?