Spark Dataframe的分区数

Ram*_*esh 6 dataframe apache-spark apache-spark-sql

任何人都可以解释将为Spark Dataframe创建的分区数量.

我知道对于RDD,在创建它时我们可以提到下面的分区数量.

val RDD1 = sc.textFile("path" , 6) 
Run Code Online (Sandbox Code Playgroud)

但是对于Spark数据帧,在创建时看起来我们没有选择指定像RDD那样的分区数.

我认为只有在创建数据框架后我们可以使用重新分区API.

df.repartition(4)
Run Code Online (Sandbox Code Playgroud)

因此,如果我们可以在创建数据帧时指定分区数量,请​​告诉我们.

zer*_*323 10

你不能,或者至少不是一般情况下,但与RDD相比没有那么不同.例如,textFile您提供的示例代码仅对最小分区数设置了限制.

一般来说:

  • Datasets使用类似rangetoDF本地集合的方法在本地生成将使用spark.default.parallelism.
  • DatasetsRDD其父级继承多个分区创建.
  • Datsets 使用数据源API创建:

  • 某些数据源可能提供其他选项,可以更好地控制分区.例如,JDBC源允许您设置分区列,值范围和所需的分区数.