dataFrame.repartition(1).write.
option("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false").
option("header", is_save_df_header).csv(local_path);
repartition要求把最后生成的csv成为多少个,默认是会有多个,设置为1代表生成1个csv文件,local_path只是路径,生成的csv,parquet文件都是会自动有名字的。该代码在本地运行是会将csv,parquet放到本地地址的。如果放到集群里边就会出现:本地文件死活找不到的情况。文件会在spark集群的hdfs上。