我有一个2列火花数据帧 - col1
和col2
。SparkFrameFrame为什么会创建错误的分区数?
scala> val df = List((1, "a")).toDF("col1", "col2")
df: org.apache.spark.sql.DataFrame = [col1: int, col2: string]
当我parquet
格式写在磁盘上df
,谱写等于唯一值的数量的文件数中的数据全部col1
我做了repartition
使用col1
,像这样:
scala> df.repartition(col("col1")).write.partitionBy("col1").parquet("file")
上面的代码在文件系统中只产生一个文件。但是,洗牌操作的数量成为200
我无法理解这里的一件事,如果col1
仅包含一个值,即1
那么为什么它在repartition
创造200个分区?