[解決済み] saveAsTextFileで出力を複数ファイルに分割しないようにするには?
2023-07-24 22:36:21
質問
SparkでScalaを使用しているとき、結果をダンプするたびに
saveAsTextFile
を使って出力すると、出力が複数に分割されてしまうようです。パラメータ(path)を渡しているだけなんですけどね。
val year = sc.textFile("apat63_99.txt").map(_.split(",")(1)).flatMap(_.split(",")).map((_,1)).reduceByKey((_+_)).map(_.swap)
year.saveAsTextFile("year")
- 出力の数は使用するリデューサーの数に対応しているか?
- 出力は圧縮されているということでしょうか?
- bashを使って出力をまとめることができるのは知っていますが、出力を分割せずに1つのテキストファイルに保存するオプションはありますか?APIドキュメントを見ましたが、これについてはあまり書かれていません。
どのように解決するのですか?
複数のファイルとして保存されるのは、計算が分散されるからです。もし、出力が1台のマシンに収まると思われるほど小さいのであれば、プログラムの最後を
val arr = year.collect()
そして、できた配列をファイルとして保存します。 もう一つの方法は、カスタムパーティショナーを使用することです。
partitionBy
を使用して、すべてを 1 つのパーティションにすることもできますが、並列化されないのでお勧めできません。
ファイルを保存する際に
saveAsTextFile
を使うことができます。
coalesce(1,true).saveAsTextFile()
. これは基本的に、計算を行い、1つのパーティションに合体することを意味します。また
repartition(1)
の単なるラッパーです。
coalesce
のラッパーで、shuffle 引数が true に設定されています。のソースを見ると
RDD.scala
のソースを見ると、このようなことがほとんど分かってきますので、ぜひ見てみてください。
関連
-
[解決済み] 依存するメソッドタイプの説得力のある使用例とは?
-
[解決済み] IntelliJ IDEAで依存関係が変更された後、build.sbtから強制的に再ロードするには?
-
[解決済み] Scalaのforループは下降か減少か?
-
[解決済み] scalaは推論される型の「許容される複雑さ」にどのような制限を設けているのでしょうか?
-
[解決済み] sbtとGradleの比較 [終了しました]。
-
[解決済み] Scalaの定数の命名規則?
-
[解決済み] Scalaでマップを反転させるエレガントな方法
-
[解決済み] sbtのヒープサイズを設定するには?
-
[解決済み] Scalaのコレクションにenrich-my-libraryパターンを適用するにはどうしたらいいですか?
-
[解決済み] Scalaの複数パラメータリストと複数パラメータ/リストの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] scalaは推論される型の「許容される複雑さ」にどのような制限を設けているのでしょうか?
-
[解決済み] sbtとGradleの比較 [終了しました]。
-
[解決済み] Scalaのアクター:受信と反応
-
[解決済み] 機能的デザインパターン【終了しました
-
[解決済み] Scalaの自動リソース管理にはどのようなものがありますか?
-
[解決済み] Scalaでマップを反転させるエレガントな方法
-
[解決済み] scala で複数の case class をマッチングさせる
-
[解決済み] ScalaにおけるNull/Nothing/Unitの使用法
-
[解決済み] ケースクラスのコンパニオンでapplyをオーバーライドする方法
-
[解決済み] Scalaの複数パラメータリストと複数パラメータ/リストの違いは何ですか?