2017-08-11 8 views
0

結果をテキストファイルに保存する前に、Spark SQL Query結果にヘッダーを追加するにはどうすればよいですか?databricks libを使用せずにSpark SQLクエリ結果に列見出しを追加する方法は?

val topPriceResultsDF = sqlContext.sql("SELECT * FROM retail_db.yahoo_stock_orc WHERE open_price > 40 AND high_price > 40 ORDER BY date ASC") 

topPriceResultsDF.map(x => x.mkString(",")).saveAsTextFile("/user/sparkuser/myspark/data/output/yahoo_above40_results(comma).csv") 

にのみデータを保存するが、私は同様に (日付、open_price、HIGH_PRICE、LOW_PRICE、close_price、体積、adj_price)のようなヘッダを追加する必要があります。誰かが考えたら助けてください!私はdatabricksライブラリを使用することはできません。

O/Pは

date,open_price,high_price,low_price,close_price,volume,adj_price 
1997-07-09,40.75008,45.12504,40.75008,43.99992,37545600,1.83333 

おかげのようにする必要があります!

+0

をあなたはハイブテーブルからの読み込みをしていますか? –

+0

Hiveテーブルからはいですが、違いはありません。 –

+0

このプロパティで試すことができます 'sqlContext.setConf(" set hive.cli.print.header "、" true ")'あなたが 'HiveContext'を使用していることを確認してください。 –

答えて

0

各ファイルのヘッダをしたい場合は:あなたが最初のもののために必要な場合

val header: String = ... 

df.rdd.map(x => x.mkString(",")) 
    .mapPartitions(iter => Iterator(header) ++ iter) 
    .saveAsTextFile(...) 

df.rdd.map(x => x.mkString(",")) 
    .mapPartitionsWithIndex { 
    case (0, iter) => Iterator(header) ++ iter 
    case (_, iter) => iter } 
    .saveAsTextFile(...) 
+0

ありがとうございました! –

関連する問題