2017-09-15 51 views
0

我從csv文件加載數據框,我處理dataframe.describe()操作,我想將結果保存爲文本文件。如何將帶有標題的數據框另存爲文本?

這裏是我的代碼:

data = spark.read.csv("iris.csv", header=True, sep=',') 
    df = data.describe() 
    df.rdd.map(lambda r: ",".join([str(c) for c in r])).coalesce(1).saveAsTextFile('describeResult') 

的問題是,當過程saveAsTextfile opeartion文件收到沒有數據幀頭部。我如何解決它以保存包括其頭文件在內的整個數據幀?

回答

0

csv數據幀寫入程序也能夠寫入標題。

https://spark.apache.org/docs/2.2.0/api/scala/index.html#org.apache.spark.sql.DataFrameWriter

df.write.option("header", "true").csv(...)

需要注意的是,如果你的數據框爲空,標題將不會被寫入。

+0

我需要使用'saveAsTextFile'因爲'df.write'結果文件名無法預測(部分-00000-0db54427-ef17-43c0-8a0a-7b3c182d599e-c000),同時使用'saveAsTextFile'文件被命名爲部分-00000 –

+0

我不明白區別.. saveAsTextFile輸出文件夾中每個分區的一個文件,其名稱與數據框相同。如果你只需要一個文件,你可以合併。 –

+0

我的意思是當使用'df.write'時文件的名稱無法預測(所以我不能在以後使用它),而當使用'RDD.saveAsTextFile'時,文件結果是靜態的命名爲part-00000(在兩種情況下使用合併時) –

相關問題