Spark SQL(通过HiveContext进行Hive查询)始终创建31个分区

时间:2016-04-27 16:59:27

标签: apache-spark apache-spark-sql hivecontext

我正在使用Spark代码中的HiveContext运行hive查询。无论我运行哪个查询以及它有多少数据,它总是生成31个分区。谁知道原因?是否有预定义/可配置的设置?我基本上需要更多分区。

我使用此代码段执行配置单元查询:

var pairedRDD = hqlContext.sql(hql).rdd.map(...)

我正在使用Spark 1.3.1

谢谢, 尼丁

1 个答案:

答案 0 :(得分:0)

RDD中的分区数与它所依赖的RDD中的分区数相同,但有一些例外: coalesce 转换允许创建比其分区更少的分区的RDD父RDD, union 转换使用其父项的分区数之和创建RDD, cartesian 使用其产品创建RDD。 增加分区数

  • 使用重新分区转换,这将触发随机播放。
  • 配置您的InputFormat以创建更多拆分。
  • 使用较小的块大小将输入数据写入HDFS。

此链接here很好地解释了如何定义分区数以及如何增加分区数。