2017-09-20 16 views
0

ヘッダーのみの出力ファイルを生成する必要があります。私は 空のRDDをヘッダーとともに出力ファイルに書き出します。

スパークJavaコード

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-core_2.10</artifactId> 
    <version>1.6.0</version> 
</dependency> 

<dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-hive_2.10</artifactId> 
    <version>1.6.0</version> 
</dependency> 

依存関係以下
JavaSparkContext context = SparkBean.getInstance().getJavaSparkContext(); 
JavaRDD<Row> emptyRdd = context.emptyRDD();         
SQLContext sqlContext = SparkBean.getInstance().getSparkSQLContext(); 
DataFrame tpDf = sqlContext.createDataFrame(emptyRdd,Common.createSchema(ConfigItems.getCitywiseSchema())); 
tpDf.coalesce(1).toJavaRDD().saveAsTextFile("citywise.csv"); 

にcitywise.csvフォルダに生成された出力、私は唯一の成功ファイルがない一部のファイルを見ることができるの内側を使用していました。私はまた、コードの下に

を使用していた

予想される出力

citywise.csv /パート-00000

cat citywise.csv/part-00000 
header1,header2,header3 

更新

出力部分ファイルなし

これをどのように実装できますか?

+0

'sc.makeRDD(tpDf.columns).saveAsTextFile(..)' – philantrovert

答えて

1

質問に答える前に、RDD(従来のAPI)の使用を避けたい場合は、DataSet/DataFrame(Structred API)を代わりに使用する必要があります。 3つのapiの間のdiffrenceの詳細と、構造化されたapiの方がずっと優れている理由については、this databricks articleを参照してください。

私はスカラ座から来ているが、私はJavaとPythonであなたが構造化されたAPIを使用しているので、それを行うには非常に似た方法があることを信じています:

tpDF.write.option("header", true).save("test") 
今、あなたの質問に答える

希望すると、これが役立ちます。最高の敬具

関連する問題