Hier ist der Code:Coalescing hat keinen Einfluss auf die Anzahl der Partitionen in Funken
val nouns = sc.textFile("/Users/kaiyin/IdeaProjects/learnSpark/src/main/resources/nouns")
val verbs = sc.textFile("/Users/kaiyin/IdeaProjects/learnSpark/src/main/resources/verbs")
val sentences = nouns.cartesian(verbs).take(10)
sentences.foreach(println _)
println(s"N partitions for nouns: ${nouns.partitions.size}")
nouns.coalesce(10, true)
println(s"N partitions for nouns after coalesce: ${nouns.partitions.size}")
Ergebnis:
N partitions for nouns: 2
N partitions for nouns after coalesce: 2
Von Funken 1.6.2 doc:
Hinweis: Bei shuffle = true, Sie können tatsächlich zu einer größeren Anzahl von Partitionen verschmelzen. Dies ist nützlich, wenn Sie eine kleine Anzahl von Partitionen haben, sagen wir 100, möglicherweise mit einigen Partitionen ungewöhnlich groß. Wenn coalesce aufgerufen wird (1000, shuffle = true), wird in 1000 Partitionen ausgegeben, wobei die Daten mit einem Hash-Partitionierer verteilt werden.
Aber anscheinend coalesce
hat in diesem Fall überhaupt keine Wirkung. Warum?
ganze Skript ist hier: https://github.com/kindlychung/learnSpark/blob/master/src/main/scala/RDDDemo.scala
Wäre es richtig anzunehmen, dass Substantive mehr als 2 Elemente enthalten? – micker
1525 Artikel nach 'wc -l' – qed