我有一个数据集,我想将每个列的唯一值均匀地重新分区为 10 个桶,并且我想将此结果调整为大量分区,以便每个分区都很小。
col_1
保证是中的值之一["CREATE", "UPDATE", "DELETE"]
我的代码如下所示:
df.show()
"""
+------+-----+-----+
| col_1|col_2|index|
+------+-----+-----+
|CREATE| 0| 0|
|CREATE| 0| 1|
|UPDATE| 0| 2|
|UPDATE| 0| 3|
|DELETE| 0| 4|
|DELETE| 0| 5|
|CREATE| 0| 6|
|CREATE| 0| 7|
|CREATE| 0| 8|
+------+-----+-----+
"""
df = df.withColumn(
"partition_column",
F.concat(
F.col("col_1"),
F.round( # Pick a random number between 0 and 9
F.random() * F.lit(10),
0
)
)
)
df = df.repartition(1000, F.col("partition_col"))
我看到我的大多数任务都以零行数据运行并完成,我希望数据均匀分布在我的partition_col
1000 个分区中吗?