一些数据源可能提供额外的选项,以提供对分区的更多控制。例如,JDBC源代码允许您设置分区列、值范围和所需的分区数量。
谁能解释一下为一个Spark Dataframe创建的分区的数量?
我知道对于RDD,在创建它的时候,我们可以像下面这样提到分区的数量。
val RDD1 = sc.textFile("path" , 6)
但是对于Spark数据框架,在创建时,我们没有像RDD那样指定分区数量的选项。
我认为唯一的可能性是,在创建数据框架后,我们可以使用重分区API。
df.repartition(4)
那么谁能让我知道我们是否可以在创建数据框架时指定分区的数量
您不能,或者至少在一般情况下不能,但与RDD相比并没有什么不同。例如,您提供的textFile
示例代码仅对最小分区数量设置了限制。
:
- 在本地收集时使用
range
或toDF
方法在本地生成的Datasets
将使用spark.default.parallelism
。 -
Datasets
是由RDD
创建的。 Datsets
使用数据源API创建:- 在Spark中
- x通常取决于Hadoop的配置(最小/最大分割大小)。
- 在Spark 2。
spark dataframe中shuffle分区的默认数目(200)
rdd的默认分区数(10)