2016-04-27 151 views
1

我使用HiveContext从我的Spark代码运行hive查询。无论我运行哪个查询以及它有多少数据,它总是会生成31个分区。有人知道原因吗?是否有预定义/可配置的设置?我基本上需要更多的分区。Spark SQL(通过HiveContext进行Hive查询)始终创建31个分区

我使用此代码段执行蜂房查询:

VAR pairedRDD = hqlContext.sql(HQL).rdd.map(...)

我使用星火1.3.1

谢谢, 尼廷

回答

0

在RDD分区的数量是相同的分区在RDD它所依赖,有一些例外的数量:COALESCE异基因改造如果创建RDD的分区比其父RDD少,则联合转换会创建一个RDD,其中包含父级分区数总和,笛卡尔将创建RDD及其产品。 增加分区数量

  • 使用重新分区转换,这将触发洗牌。
  • 配置您的InputFormat以创建更多分割。
  • 用较小的块大小将输入数据写出到HDFS。

此链接here对如何定义分区数量以及如何增加分区数量有很好的解释。

相关问题