返回由给定分区表达式分区的新 DataFrame。 生成的数据帧经过哈希分区。
Syntax
repartition(numPartitions: Union[int, "ColumnOrName"], *cols: "ColumnOrName")
参数
| 参数 | 类型 | 说明 |
|---|---|---|
numPartitions |
int | 可以是一个 int,用于指定分区或列的目标数。 如果它是列,它将用作第一个分区列。 如果未指定,则使用默认分区数。 |
cols |
str 或 Column | 分区列。 |
退货
DataFrame:重新分区的数据帧。
示例
from pyspark.sql import functions as sf
df = spark.range(0, 64, 1, 9).withColumn(
"name", sf.concat(sf.lit("name_"), sf.col("id").cast("string"))
).withColumn(
"age", sf.col("id") - 32
)
df.repartition(10).select(
sf.spark_partition_id().alias("partition")
).distinct().sort("partition").show()
# +---------+
# |partition|
# +---------+
# | 0|
# ...
# | 9|
# +---------+
df.repartition(7, "age").select(
sf.spark_partition_id().alias("partition")
).distinct().sort("partition").show()
# +---------+
# |partition|
# +---------+
# | 0|
# ...
# | 6|
# +---------+