あなたが1つのファイルを書き込みたい場合は
from pyspark.sql import DataFrameWriter
.....
df1 = sqlContext.createDataFrame(query1)
df1.write.csv(path="/opt/Output/sqlcsvA.csv", mode="append")
、あなたはそれらの行のいずれかにCOALESCEまたはrepartition
を使用することができます。データフレームは単にDAGの実行であるため、どのラインでも問題ありません.csvへの書き込みまでは実行されません。 repartition
&3210は効果的に同じコードを使用しますが、合体はパーティションの数を減らすだけで、repartition
もそれらを増やすことができます。わかりやすくするためにrepartition
に固執しています。
df1 = sqlContext.createDataFrame(query1).repartition(1)
または
df1.repartition(1).write.csv(path="/opt/Output/sqlcsvA.csv", mode="append")
私はドキュメントの例は素晴らしいではありません、彼らはパス以外のパラメータの使用例を示していないと思います。あなたがしようとした二つのものを参照する
:仕事にそのために
(append)
は、「追加」値を含むAPPENDという名前の文字列変数があることが必要となります。 appendというDataFrameWriterライブラリには文字列定数はありません。 つまり、これをコードの前半に追加すると、それが機能します。 APPEND =仕事にそのために
('mode=append')
は、CSV形式の方法はあなただけ持つことができたときに余分な作業になりモードの値を、取得するために
mode=append
文字列を解析しなければならない「追加」パラメータは、抽出する必要のある値「append」または「overwrite」とまったく同じです。特別なケースはありません。Pythonが組み込まれており、pysparkに特有のものではありません。
可能であれば、名前付きパラメータを使用することをお勧めします。例: 代わりに位置パラメータ
csv("/path/to/file.csv", "append")
の
csv(path="/path/to/file.csv", mode="append")
それは明確だし、理解を助けます。
sqlcsvA.csvというファイルがありますか? –
はい出力は 'sqlcsvA.csv'ファイルにコピーされます。 – kaks
コードからこのファイルを削除して再度作成できますか? –