SparkR 读写数据框问题

SparkR reading and writing dataframe issue

我有一个要写入光盘的 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: loadDF on org.apache.spark.sql.api.r.SQLUtils failed Error in invokeJava(isStatic = TRUE, className, methodName, ...) : org.apache.spark.sql.AnalysisException: Unable to infer schema for ParquetFormat at dataframe.csv. It must be specified manually;

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

data_frame<-repartition(data_frame,1)

有什么帮助吗?

您还必须将来源指定为 "csv":

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

关于 header 参数:

目前 SparkR for Spark 2.0 中还有一个错误,其中 write.df 函数的可变参数未传递给选项参数(参见 https://issues.apache.org/jira/browse/SPARK-17442)。这就是即使您在 write.df.

上指定 header="true" 也不会将 header 写入 csv 的原因

使用parquet文件格式解决了,parquet文件格式默认存储schema。