0

PySparkを使ってテキストファイルとして〜5,000,000行のRDDを出力しようとしています。長い時間がかかりますから、.saveAsTextFile()をより速くする方法のヒントは何ですか?Sparkから何十億もの行を出力する

行はそれぞれ3列で、HDFSに保存します。

+1

どのくらいの時間を要しているのか、どのような種類のクラスタとジョブの構成になっているのかを教えてください。どのくらいの行がありますか? – DNA

+0

あなたは 'HDFS'に保存していますか? –

答えて

1

個々の行のサイズやクラスタのサイズがどれくらいの長さであるかを知ることなく、私はいくつかの推測しかできません。

まず、一般に、Sparkはパーティションごとに1つのファイルを出力します。あなたのRDDが単一の(あるいは少数の)パーティションである場合、HDFSまたはGCSへの出力は遅いようです。出力前に再パーティション化することを検討してください(再パーティション化はパイプラインに再分割して作業しても効果的です)。 RDD#getNumPartitionsを呼び出すと、必要な場合に、RDDと再構築に何パーティションがあるかを知ることができます。

私が考えることのできるもう1つの可能性は、HDFSがプロビジョニングされていないか(スペース不足など)、エラーが発生していて問題が非常にうまくいかないことが考えられます。 HDFS書き込みエラーがドライバには見えるが、コンテナログにはエラーがあると思う。

関連する問題