将Spark数据帧转换为Flatfile .csv

时间:2019-06-13 17:31:11

标签: python apache-spark pyspark

我有一个Spark数据框(以下称为spark_df),我想将其转换为.csv格式。我尝试了以下两种方法:

spark_df_cut.write.csv('/my_location/my_file.csv')
spark_df_cut.repartition(1).write.csv("/my_location/my_file.csv", sep=',')

其中没有收到任何错误消息,并且都完成了(看来),但是我在目标位置找不到任何输出.csv文件!有什么建议吗?

我正在使用星火'2.3.1'的基于云的Jupyternotebook。

2 个答案:

答案 0 :(得分:0)

spark_df_cut.write.csv('/my_location/my_file.csv') 
//will create directory named my_file.csv in your specified path and writes data in CSV format into part-* files. 

我们在编写数据框时无法控制文件名,请在您的计算机中查找名为 my_file.csv 目录位置(/my_location/my_file.csv)

如果要文件名以* .csv结尾,则需要使用 fs.rename 方法rename

答案 1 :(得分:0)

spark_df_cut.write.csv将文件另存为零件文件。 spark中没有直接解决方案可另存为.csv文件,而该文件可以直接通过xls或其他方式打开。但是有多种解决方法可用,一种解决方法是将spark Dataframe转换为panda Dataframe并使用如下所示的to_csv方法

df  = spark.read.csv(path='game.csv', sep=',')
pdf = df.toPandas()
pdf.to_csv(path_or_buf='<path>/real.csv')

这会将数据另存为.csv文件

另一种方法是使用hdfs命令打开文件,然后将其分类为文件。 如果需要更多帮助,请发帖