0

私は5ノードクラスタを持っています.pysparkを使用してデータフレームに100k csvファイルをロードし、いくつかのetl操作を実行し、出力を寄木細工ファイルに書き込みます。 データフレームをロードすると、各エグゼキュータが20kレコードを処理するすべてのエグゼキュータ間でデータセットを均等に分割できます。すべてのエグゼキュータで均等にpyspark分割ロード

+0

の原因となりますことを心に留めておくことができます。 – philantrovert

答えて

0

可能であれば、入力データが小さいファイルに分割されていることを確認してください。 このようにして、各エグゼキュータは1つのファイルを読み込んで処理します。あなたが入力ファイルを変更できない場合は

、あなたはdf.repartition(5)を呼ぶが、それはあなたが `配分(5)`使用することができ、高価なシャッフル操作

+0

あなたが言ったように、再パーティション分割を追加する時間がかかります。データがすべての5つのノードに均等に分散されていれば、プロセスはより速く終了すると考えていました。 df = sqlContext.read.format( 'com.databricks.spark.csv')。load( "/ dwo_poc/rows.csv") dz = df.repartition(5) dz.show(100) – srini

+0

それはそうです再シャットルのコストは、並列性の利点よりも高価で、負荷を均等に分散するように見えます。私の理解が間違っていれば私を訂正してください。 – srini

+0

すべてに合った回答は一つもありません。ワークロードに最も適したものを試してみるのがベストです – lev

関連する問題