tôi đã đưa ra cụm của tôi theo cách này:Spark: chiến lược phân vùng lại sau khi đọc file văn bản
/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
Điều đầu tiên tôi làm là đọc một tập tin văn bản lớn, và đếm nó:
val file = sc.textFile("/path/to/file.txt.gz")
println(file.count())
Khi làm điều này, tôi thấy rằng chỉ một trong các nút của tôi thực sự đang đọc tệp và thực thi đếm (vì tôi chỉ thấy một tác vụ). Điều đó có được mong đợi không? Tôi có nên phân vùng lại RDD của mình sau đó hay khi tôi sử dụng các chức năng giảm bản đồ, liệu Spark có làm điều đó cho tôi không?
"defaultMinPartitions" của bạn là gì? Theo doc rõ ràng nói, textFile có một số tham số phân vùng tùy chọn, mặc định là mặc định. –
Mặc định của tôiMinPartitions lớn hơn một. Có vẻ như tôi không thể ép buộc một số phân vùng được chỉ định, bởi vì nó chỉ là một tệp văn bản ... đang chạy .... val tệp = sc.textFile ("/ path/to/file.txt.gz", 8) println (file.partitions.length) trả về 1 – Stephane
Vâng, nó phải làm việc đọc ở một nơi, bởi vì đó là vốn đã nối tiếp. Nhưng tôi không thể thấy lý do tại sao nó sẽ có param tùy chọn nếu nó không làm _something_. –