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