ich versuche, einen Datenrahmen neu zu partitionieren nach einem columnm die der Datenrahmen hat N
(lassen N=3
sagen) unterschiedliche Werte in der Partition-Spalte x
, zB:Dropping leere Datenrahmen Partitionen in Apache Spark
val myDF = sc.parallelize(Seq(1,1,2,2,3,3)).toDF("x") // create dummy data
Was ich mag es zu erreichen ist, um myDF
von x
zu repartiton, ohne leere Partitionen zu produzieren. Gibt es einen besseren Weg als das?
val numParts = myDF.select($"x").distinct().count.toInt
myDF.repartition(numParts,$"x")
(Wenn ich numParts
nicht angeben, in repartiton
, sind die meisten meiner Partitionen leer (als repartition
200 Partitionen) schafft ...)
Laut http://spark.apache.org/docs/latest/sql-programming-guide.html#other-configuration-options werden die 200 Partitionen aufgrund des Standardwerts für die Konfigurationsoption 'spark 'erstellt .sql.shuffle.partitions' – AKSW
Antwort könnte gefunden werden http://stackoverflow.com/questions/41854818/spark-dataframe-repartition-number-of-partition-not-préserved?noredirect=1#comment70893687_41854818 – FaigB