tôi cố gắng phân vùng lại một DataFrame theo một columnm các các DataFrame có N
(hãy nói N=3
) giá trị khác nhau trong phân vùng cột x
, ví dụ:Thả phân vùng DataFrame trống trong Apache Spark
val myDF = sc.parallelize(Seq(1,1,2,2,3,3)).toDF("x") // create dummy data
Những gì tôi muốn đạt được là repartiton myDF
bởi x
mà không tạo phân vùng trống. Có cách nào tốt hơn làm việc này không?
val numParts = myDF.select($"x").distinct().count.toInt
myDF.repartition(numParts,$"x")
(Nếu tôi không chỉ định numParts
trong repartiton
, hầu hết các phân vùng của tôi là rỗng (như repartition
tạo ra 200 phân vùng) ...)
Theo http://spark.apache.org/docs/latest/sql-programming-guide.html#other-configuration-options, 200 phân vùng sẽ được tạo vì giá trị mặc định cho tùy chọn cấu hình 'tia lửa .sql.shuffle.partitions' – AKSW
Trả lời có thể tìm thấy http://stackoverflow.com/questions/41854818/spark-dataframe-repartition-number-of-partition-not-preserved?noredirect=1#comment70893687_41854818 – FaigB