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。
我有一个要写入光盘的 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。