Sparkr将DF写为文件csv/txt

Dan*_*leO 2 r apache-spark sparkr

嗨,我正在以纱线模式开发sparkR.

我需要在csv/txt文件中写一个sparkr df.

我看到有,write.df但它写了镶木地板文件.

我试着做这件事

RdataFrame<-collect(SparkRDF)
write.table(RdataFrame, ..)
Run Code Online (Sandbox Code Playgroud)

但是我在contextCleaner上得到了很多WARN和一些错误.

有什么办法吗?

zer*_*323 8

Spark 2.0+

你可以使用write.text功能:

将SparkDataFrame的内容保存在指定路径的文本文件中.SparkDataFrame必须只有一列字符串类型,名称为"value".每行都成为输出文件中的新行.

write.text(df, path)
Run Code Online (Sandbox Code Playgroud)

或者write.df使用内置的SparkR编写器csv:

write.df(df, path, source="csv")
Run Code Online (Sandbox Code Playgroud)

Spark 1.x

你可以使用spark-csv包:

write.df(SparkRDF, "foo.csv", "com.databricks.spark.csv", ...)
Run Code Online (Sandbox Code Playgroud)

它可以添加例如packages参数SparkR/ spark-submit:

sparkR --packages com.databricks:spark-csv_2.10:1.3.0 # For Scala 2.10
sparkR --packages com.databricks:spark-csv_2.11:1.3.0 # For Scala 2.11
Run Code Online (Sandbox Code Playgroud)

有关其他选项,请参阅官方文档

  • `repartition(...,1)`应该可以,但实际上不使用它。如果输出足够小,请在本地收集并写入。如果不是这样,则您要在一台计算机上至少两次传递所有内容。 (2认同)