如何将带有标题的数据框另存为文本?

问题描述:

我从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文件收到没有数据帧头部。我如何解决它以保存包括其头文件在内的整个数据帧?

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(在两种情况下使用合并时) –