2016-05-20 7 views
-1

これらのファイルをS3からRedshiftにコピーしようとしていますが、それらはすべてRowの形式です(column1 = value、column2 = value、...)。 )、明らかに問題を引き起こします。通常のCSVでデータフレームを書き出すにはどうすればよいですか?Sparkが `saveAsTextFile`をRow()形式で書き出します

私はこのようにそれを呼んでいる:私もspark-csvモジュールで書き出す試してみた、そしてそれは私がやった計算のいずれかを無視し、単にオリジナルの寄木細工をフォーマットするようにそれはそう

# final_data.rdd.saveAsTextFile(
    #  path=r's3n://inst-analytics-staging-us-standard/spark/output', 
    #  compressionCodecClass='org.apache.hadoop.io.compress.GzipCodec' 
    #) 

csvとしてファイルを作成し、それをダンプします。

私はこのようなことを呼んでいる:

df.write.format('com.databricks.spark.csv').save('results') 
+0

spark-csvアプローチが有効です。おそらく 'final_data' DataFrameで' write'を呼び出すべきでしょうか? –

+0

Derpはまったく問題でしたが、私はそれを考え出しました;)それを指摘してくれてありがとう!あなたが答えを出すなら、私はあなたに答えのクレジットを与えます。 – flybonzai

答えて

0

火花CSVアプローチが良いものであると作業しなければなりません。あなたのコードを見て、オリジナルのDataFrame dfdf.writeと呼んでいるようです。そのため、あなたの変換は無視されます。正しく動作させるには、次のようにする必要があります。

final_data = # Do your logic on df and return a new DataFrame   
final_data.write.format('com.databricks.spark.csv').save('results') 
関連する問題