ho lanciato il mio gruppo in questo modo:Spark: la strategia Repartition dopo la lettura di file di testo
/usr/lib/spark/bin/spark-submit --class MyClass --master yarn-cluster--num-executors 3 --driver-memory 10g --executor-memory 10g --executor-cores 4 /path/to/jar.jar
La prima cosa che faccio è leggere un file di testo grande, e ritengo che:
val file = sc.textFile("/path/to/file.txt.gz")
println(file.count())
Quando facendo ciò, vedo che solo uno dei miei nodi sta effettivamente leggendo il file ed eseguendo il conteggio (perché vedo solo un'attività). È previsto? Dovrei ripartizionare il mio RDD in seguito, o quando uso le funzioni di riduzione della mappa, Spark lo farà per me?
Quali sono le tue "defaultMinPartitions"? Come dice chiaramente il documento, textFile accetta un numero facoltativo di parametro partizioni, che per impostazione predefinita è quello. –
My defaultMinPartitions è maggiore di uno. Sembra che non sia possibile forzare un numero specificato di partizioni, perché è solo un file di testo ... in esecuzione .... val file = sc.textFile ("/ percorso/to/file.txt.gz", 8) println (file.partitions.length) restituisce 1 – Stephane
Bene, deve fare la lettura in un posto, perché è intrinsecamente seriale. Ma non riesco a capire perché avrebbe avuto quel parametro opzionale se non avesse fatto _qualcosa_. –