0
Spark SQLを使用して大きなCSVファイルを読み込んで共通の列に結合しています。私のコードで結合を実行した後、新しいCSVファイルにテーブルを保存したいと思います。私はこれを行うにはDataFrameのwrite()
メソッドを使用しています。ファイルを調べると、ヘッダーが複数回印刷された後、データが続き、さらにヘッダーが続きます。たとえば:Spark SQLでの書き込み時に複数のヘッダー行が印刷される
name, age, addr, job, salary
name, age, addr, job, salary
name, age, addr, job, salary
Bob, 34, 123 Fake St, Programmer, 10000000
June, 23, 5 Tree Ave., College Student, 15000
Rick, 12, 43 Ware St., Student, 0
name, age, addr, job, salary
name, age, addr, job, salary
name, age, addr, job, salary
<more data here>
この出力は、データフレームクラスのshow()
メソッドがコンソールに表を印刷し、私が期待するものが表示さ特に以来、予想外です。
私が書き込みを実行するために使用しているコード:
bigTable.write().mode(SaveMode.Overwrite).format("com.databricks.spark.csv")
.option("header", "true").save(settings.getValue().outputDir +"/bigTable.csv");
設定を使用する場合option("header", "false")
データ値が正しくCSVに保存されます。これはバグですか?
ソースのCSVファイルは何ですか?あなたはどのようにspark-csvでそれらを読むのですか? –
@MiladKhajaviが尋ねる理由は、テキストファイルで、hadoop fs-text/my/dir/*を使ってそれらを見ているなら、多分複数のファイルが存在し、複数のヘッダーがあるからです。 –
@MiladKhajavi、Spark SQL(特にDatabricksのAPIを使用)でそれらを読んでいます。私はいくつかのCSVファイルから読んでいますが、Spark SQLデータフレームを使ってそれらを結合しています。私が参加すると、ヘッダー行が1つしかないことが予想されます。 – dmux