1
我有一个RDD,其中包含importing from Postgres via JDBC的20个分区。我有一个拥有5名员工(5个核心)的群集。我只是想根据计算每个分区中元素的个数:RDD在群集中有20个分区,但没有工人正在使用
def count_in_a_partition(idx, iterator):
count = 0
for _ in iterator:
count += 1
return idx, count
rdd.mapPartitionsWithIndex(count_in_a_partition).collect()
上面的代码一直运行下去,和Web GUI显示,工人没有被利用所有,即“0使用” 。即使是Memory in use
显示0.0 B Used
。看起来有什么不对。你会期望至少有一名工人在做某事。我可以做些什么来加速计算和利用核心?
嗨,你应该看看你的火花配置。将spark.executor.instances设置为(核心数量为1)大多数情况下都是可用的。你也可以减少执行者使用的内存。我从未见过等待状态...你确定postgre运作良好吗? – GwydionFR
我认为你是正确的减少执行者使用的内存。谢谢! – FullStack
你能分享你的spark-submit命令吗? – avrsanjay