如何将带有标题的数据框另存为文本?
问题描述:
我从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(...)
需要注意的是,如果你的数据框为空,标题将不会被写入。
我需要使用'saveAsTextFile'因为'df.write'结果文件名无法预测(部分-00000-0db54427-ef17-43c0-8a0a-7b3c182d599e-c000),同时使用'saveAsTextFile'文件被命名为部分-00000 –
我不明白区别.. saveAsTextFile输出文件夹中每个分区的一个文件,其名称与数据框相同。如果你只需要一个文件,你可以合并。 –
我的意思是当使用'df.write'时文件的名称无法预测(所以我不能在以后使用它),而当使用'RDD.saveAsTextFile'时,文件结果是静态的命名为part-00000(在两种情况下使用合并时) –