在write_df中命名csv文件

时间:2017-01-04 09:11:42

标签: apache-spark sparkr

我正在使用write_df在sparkR中编写一个文件,我无法为此指定文件名:

代码:

write.df(user_log0, path = "Output/output.csv",
         source = "com.databricks.spark.csv", 
         mode = "overwrite",
         header = "true")

问题:

我希望在'Output'文件夹中有一个名为'output.csv'的文件,但是会发生一个名为'output.csv'的文件夹,里面有一个名为' part-00000-6859b39b-544b-4a72-807b的文件夹-1b8b55ac3f09.csv'

我做错了什么?

P.S:R 3.3.2,OSX上的Spark 2.1.0

1 个答案:

答案 0 :(得分:1)

由于spark的分布式特性,您只能定义文件将保存到的目录,每个执行程序使用spark的内部命名约定编写自己的文件。

如果只看到一个文件,则表示您正在单个分区中工作,这意味着只有一个执行程序正在编写。这不是正常的火花行为,但是,如果这符合您的使用案例,您可以将结果收集到R数据帧并从中写入csv。

在更常见的情况下,数据在多个执行程序之间并行化,您无法设置文件的特定名称。