Spark版本 - 2.2.1。
我创建了一个包含64个桶的分区表,我正在执行聚合函数select t1.ifa,count(*) from $tblName t1 where t1.date_ = '2018-01-01' group by ifa
。我可以看到Spark UI中的64个任务,它们只使用了4个执行器(每个执行器有16个核心)。有没有办法可以扩展任务数量或者运行查询应该如何运行(运行核心数量)作为桶的数量)?
这是创建表:
sql("""CREATE TABLE level_1 (
bundle string,
date_ date,
hour SMALLINT)
USING ORC
PARTITIONED BY (date_ , hour )
CLUSTERED BY (ifa)
SORTED BY (ifa)
INTO 64 BUCKETS
LOCATION 'XXX'""")
以下是查询:
sql(s"select t1.ifa,count(*) from $tblName t1 where t1.date_ = '2018-01-01' group by ifa").show
答案 0 :(得分:1)
使用bucketing,任务数量==桶数,因此您应该了解需要/想要使用的核心/任务的数量,然后将其设置为桶数。