SparkR读写数据帧问题

时间:2016-09-17 09:31:36

标签: r sparkr

我有一个我要写入光盘的Spark DataFrame,我使用了以下代码 -

write.df(data_frame,"dataframe_temp.csv",source="csv",mode="overwrite",schema="true",header="true")

它已经完成,我可以看到一个用_SUCCESS文件创建的新文件夹。

现在,当我尝试从同一个文件中读取时,请使用以下代码 -

dataframe2<-read.df("dataframe_temp.csv",inferSchema="true",header="true")

我收到以下错误:

  

ERROR RBackendHandler:org.apache.spark.sql.api.r.SQLUtils上的loadDF   失败invokeJava中的错误(isStatic = TRUE,className,methodName,   ...):org.apache.spark.sql.AnalysisException:无法推断   Dataframe.csv中ParquetFormat的模式。必须指定   手动;

我甚至尝试过使用重新分区

data_frame<-repartition(data_frame,1)

任何帮助?

2 个答案:

答案 0 :(得分:0)

您还必须将来源指定为&#34; csv&#34;:

dataframe2<-read.df("dataframe_temp.csv", source="csv")

关于标题参数:

目前SparkR中还存在Spark 2.0的错误,其中write.df函数的变量参数未传递给options参数(请参阅https://issues.apache.org/jira/browse/SPARK-17442)。这就是为什么即使您在header="true"上指定write.df,也不会将标头写入csv。

答案 1 :(得分:0)

使用镶木地板文件格式解决,镶木地板文件格式默认存储架构。