2017-02-26 11 views
1

DFをテキストファイルにエクスポートします。SPARK SCALA DFをTextFileにエクスポート

テキストファイルとしてエクスポートするには2つの問題があります。

  1. エラーログには46個の列があり、テキストのみが1列しかサポートされていません。

  2. 私はファイルがローリングしたいと思っています。私は、同じファイルが次回の実行結果を保存したいということです。

私に方法を教えてもらえますか?

答えて

2

データフレームを書き出す方法は2つあります。最も簡単な方法は、Spark SQL APIを使用してファイルを書き出すことですが、RDD APIを使用することもできます(RDD APIを使用して単一の列として書き出されることに注意してください)。

ローリングファイルとして書き出すことについては、Sparkで可能かどうかはわかりません。以前のファイルをSparkで開き、データを結合してからディスクに書き戻す必要があります。インクリメンタルなファイル名を使用するほうが良いかもしれません。インクリメンタルなファイル名は1つのファイルとしてグロブロードできます。

csvファイルとしてDFを保存するためのコード例:

val exampleDF = spark.read.option("header","true").option("inferSchema","true").format("csv").load("example.csv") 

exampleDF.write.csv("example.out") 

スパークSQL DF例の結果:

1,0,3,Braund, Mr. Owen Harris,male,22.0,1,0,A/5 21171,7.25,null,S 
2,1,1,Cumings, Mrs. John Bradley (Florence Briggs Thayer),female,38.0,1,0,PC 17599,71.2833,C85,C 
3,1,3,Heikkinen, Miss. Laina,female,26.0,0,0,STON/O2. 3101282,7.925,null,S 
4,1,1,Futrelle, Mrs. Jacques Heath (Lily May Peel),female,35.0,1,0,113803,53.1,C123,S 



サンプルコードテキストとしてRDDを保存する:

val exampleDF = spark.read.option("header","true").option("inferSchema","true").format("csv").load("example.csv") 

exampleDF.rdd.saveAsTextFile("example.out") 

RDDの例結果:

[1,0,3,Braund, Mr. Owen Harris,male,22.0,1,0,A/5 21171,7.25,null,S] 
[2,1,1,Cumings, Mrs. John Bradley (Florence Briggs Thayer),female,38.0,1,0,PC 17599,71.2833,C85,C] 
[3,1,3,Heikkinen, Miss. Laina,female,26.0,0,0,STON/O2. 3101282,7.925,null,S] 
[4,1,1,Futrelle, Mrs. Jacques Heath (Lily May Peel),female,35.0,1,0,113803,53.1,C123,S] 
関連する問題