在spark cluster scala中保存随机林模型时出错

在spark cluster scala中保存随机林模型时出错,scala,apache-spark,Scala,Apache Spark,在将随机林模型保存到磁盘时,我遇到了以下错误。 火花簇配置- spark软件包-spark-1.6.0-bin-hadoop2.6 模式-独立 我通过在每台从机中复制相同的数据来运行spark 命令-localModel.save(SlapSparkContext.get(),path) 模型经过训练,对试验数据进行了正确的预测 错误跟踪 java.lang.NullPointerException 位于org.apache.parquet.hadoop.ParquetFileWriter.me

在将随机林模型保存到磁盘时,我遇到了以下
错误。
火花簇配置-
spark软件包-
spark-1.6.0-bin-hadoop2.6
模式-独立

我通过在每台从机中复制相同的数据来运行spark

命令-localModel.save(SlapSparkContext.get(),path)
模型经过训练,对试验数据进行了正确的预测

错误跟踪

java.lang.NullPointerException 位于org.apache.parquet.hadoop.ParquetFileWriter.mergeFooters(ParquetFileWriter.java:456) 位于org.apache.parquet.hadoop.ParquetFileWriter.writeMetadata文件(ParquetFileWriter.java:420) 位于org.apache.parquet.hadoop.ParquetOutputCommitter.writeMetadata文件(ParquetOutputCommitter.java:58) 位于org.apache.parquet.hadoop.ParquetOutputCommitter.commitJob(ParquetOutputCommitter.java:48) 位于org.apache.spark.sql.execution.datasources.BaseWriterContainer.commitJob(WriterContainer.scala:230) 在org.apache.spark.sql.execution.datasources.insertintoadoopfsrelation$$anonfun$run$1.apply$mcV$sp(insertintoadoopfsrelation.scala:151) 在org.apache.spark.sql.execution.datasources.insertintoadoopfsrelation$$anonfun$run$1.apply(insertintoadoopfsrelation.scala:108) 在org.apache.spark.sql.execution.datasources.insertintoadoopfsrelation$$anonfun$run$1.apply(insertintoadoopfsrelation.scala:108) 位于org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:56) 在org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation.run(InsertIntoHadoopFsRelation.scala:108) 位于org.apache.spark.sql.executioncommand.sideEffectResult$lzycompute(commands.scala:58) 位于org.apache.spark.sql.execution.executeCommand.sideEffectResult(commands.scala:56) 位于org.apache.spark.sql.execution.executeCommand.doExecute(commands.scala:70) 位于org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132) 位于org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130) 位于org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150) 位于org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130) 位于org.apache.spark.sql.execution.QueryExecution.toRdd$lzycompute(QueryExecution.scala:55) 位于org.apache.spark.sql.execution.QueryExecution.toRdd(QueryExecution.scala:55) 位于org.apache.spark.sql.execution.datasources.resolvedatasource$.apply(resolvedatasource.scala:256) 位于org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:148) 位于org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:139) 位于org.apache.spark.sql.DataFrameWriter.parquet(DataFrameWriter.scala:329) 在org.apache.spark.mllib.tree.model.TreeEnsembleModel$SaveLoadV1\u 0$.save(treeEnsembleModels.scala:453)上 位于org.apache.spark.mllib.tree.model.RandomForestModel.save(treeEnsembleModels.scala:65)


当您试图保存空数据帧时,会出现此错误。检查这行代码之前的步骤是否正在筛选/减少您的记录。

如果将localModel.save(…)替换为localModel.count,是否会出现相同的错误?eliasah-我找不到任何方法名称计数。Im使用spark-mllib_2.10-1.6版,然后在运行算法之前对RF算法的馈送数据进行计数。它返回正确的RDD计数,不会引发任何错误。