Spark Dataframe的分区数

时间:2016-09-07 11:20:48

标签: apache-spark dataframe apache-spark-sql

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

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

val RDD1 = sc.textFile("path" , 6) 

但是对于Spark数据帧,在创建时看起来我们没有选项来指定RDD之类的分区数。

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

df.repartition(4)

如果我们可以在创建数据帧时指定分区数量,那么任何人都可以告诉我。

2 个答案:

答案 0 :(得分:10)

你不能,或者至少不是一般情况,但与RDD相比没有那么不同。例如,您提供的textFile示例代码仅对minimum number of partitions设置了限制。

一般来说:

    使用本地集合上的Datasetsrange等方法在本地生成的
  • toDF将使用spark.default.parallelism
  • Datasets创建的
  • RDD从其父级继承了多个分区。
  • Datsets使用数据源API创建:

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

答案 1 :(得分:0)

spark 数据帧中的默认分区数(200)

rdd(10) 中的默认分区数