1
importing from Postgres via JDBCから20個のパーティションを持つRDDがあります。私は5人の労働者(5つのコア)を持つクラスタを持っています。私は単純に応じて、各パーティション内の要素の数をカウントしようとしています:クラスタ内に20個のパーティションがあり、使用されている作業者がいないRDD
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
と表示されます。何か間違っているようです。あなたは少なくとも1人の労働者が何かをしていることを期待します。計算をスピードアップしてコアを利用するには、どうすればよいでしょうか?
こんにちは、あなたの火花の設定で目を覚ます必要があります。 spark.executor.instancesを(コア数-1)に設定すると、ほとんどの場合動作します。また、エグゼキュータによって使用されるメモリを減らすことができます。私は待っている状態を見たことはありません...ポストグレがうまくいくのは確かですか? – GwydionFR
私はエグゼキュータによって使用されるメモリを減らすことが正しいと思います。ありがとう! – FullStack
spark-submitコマンドを共有できますか? – avrsanjay